scrapy-crawlera是否处理429状态代码?

时间:2018-12-24 07:11:50

标签: python web-scraping scrapy crawlera

想知道是否有人在使用scrapy时是否知道scrapy-crawlera中间件是否处理429状态代码,还是我需要实现自己的重试逻辑?

我似乎找不到任何地方记录的文件

2 个答案:

答案 0 :(得分:1)

要回答您的问题:scrapy-crawlera中间件不处理429状态,它实际上不“处理”任何状态,它只处理通信在Crawlera和Scrapy之间。

现在,大约Crawlera,他们会默认处理状态429,这意味着当他们获得429响应状态时,会将其标记为禁止并重试相同的请求

如果Crawlera在重试几次后仍未成功,它将向客户端返回503状态(在这种情况下为Scrapy)。

答案 1 :(得分:0)

您可以使用以下方法扩展重试代码列表:

from scrapy.settings.default_settings import RETRY_HTTP_CODES

(在此处查看文档:{​​{3}})

然后在您的蜘蛛中

custom_settings = {
    'RETRY_HTTP_CODES': RETRY_HTTP_CODES + [429],
}