Scrapy处理200-300范围之外的响应代码

HttpErrorMiddleware 

scrapy.spidermiddlewares.httperror.HttpErrorMiddleware

过滤掉不成功(错误)的HTTP响应,以便蜘蛛不必处理它们,这些(大多数时候)会产生开销,消耗更多资源,并使蜘蛛逻辑更复杂。

根据HTTP标准,成功的响应是那些状态代码在200-300范围内的响应。

如果您仍希望处理该范围之外的响应代码,则可以使用handle_httpstatus_listspider属性或HTTPERROR_ALLOWED_CODES设置指定spider能够处理的响应代码 

例如,如果您希望蜘蛛处理404响应,您可以执行以下操作:

class MySpider(CrawlSpider):

    handle_httpstatus_list = [404]

即在settings中增加HTTPERROR_ALLOWED_CODES = [403], HTTPERROR_ALLOWED_CODES默认是[] 

所述handle_httpstatus_list的键Request.meta也可以被用于指定的响应代码,以允许在每个请求基础。您还可以设置meta键handle_httpstatus_all 来True,如果你想以允许请求的任何响应代码。

但请记住,处理非200响应通常是一个坏主意,除非你真的知道你在做什么。

猜你喜欢

转载自www.cnblogs.com/ltn26/p/10973442.html