我正在尝试使用scrapy和scrapy-splash获取请求状态代码,下面是蜘蛛代码。
class Exp10itSpider(scrapy.Spider):
name = "exp10it"
def start_requests(self):
urls = [
'http://192.168.8.240:8000/xxxx'
]
for url in urls:
#yield SplashRequest(url, self.parse, args={'wait': 0.5, 'dont_redirect': True},meta={'handle_httpstatus_all': True})
#yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True})
yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True,'splash': {
'args': {
'html': 1,
'png': 1,
}
}
}
)
def parse(self, response):
input("start .........")
print("status code is:\n")
input(response.status)
我的起始 urlhttp://192.168.8.240:8000/xxxx
是一个 404 状态码 url,有三种请求方式:
第一个是:
yield SplashRequest(url, self.parse, args={'wait': 0.5, 'dont_redirect': True},meta={'handle_httpstatus_all': True})
第二个是:
yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True})
第三个是:
yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True,'splash': {
'args': {
'html': 1,
'png': 1,
}
}
}
)
只有第二种请求方式yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True})
可以获得正确的状态码404
,第一种和第三种都可以获得状态码200
,也就是说,我尝试使用scrapy-splash后,我无法获得正确的状态码404
,你能帮帮我吗?