HttpErrorMiddleware
-
类
scrapy.spidermiddlewares.httperror.
HttpErrorMiddleware
-
过滤掉不成功(错误)的HTTP响应,以便蜘蛛不必处理它们,这些(大多数时候)会产生开销,消耗更多资源,并使蜘蛛逻辑更复杂。
根据HTTP标准,成功的响应是那些状态代码在200-300范围内的响应。
如果您仍希望处理该范围之外的响应代码,则可以使用handle_httpstatus_list
spider属性或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响应通常是一个坏主意,除非你真的知道你在做什么。