1.当爬取页面状态码是异常状态码,但response是正常的时候,正常情况Scrapy框架会判断状态码,如果不是正常状态码会停止后续操作
解决方案:
在meta"handle_httpstatus_all": True
yield scrapy.Request(url=hear,callback=self.parse_x,meta={"item":deepcopy(item),'handle_httpstatus_all':True})
2.有些网站第一次请求时会出现异常状态码,再发请求返回的响应就是正常的状态码
解决方案:
遇到这种情况可以在自己的下载中间件系统默认middleware.py里写入一个
def process_response(self, request, response, spider):
if response.status == 异常状态码:
return request
else:
return response