scrapy-crawlera 是否处理 429 状态码?
Does scrapy-crawlera handle a 429 status code?
想知道是否有人知道在使用 scrapy 时 scrapy-crawlera 中间件是否处理 429 状态码,或者我是否需要实现自己的重试逻辑?
我似乎无法在任何地方找到它的记录
您可以使用以下方法扩展重试代码列表:
from scrapy.settings.default_settings import RETRY_HTTP_CODES
(在此处查看文档:https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#std:setting-RETRY_HTTP_CODES)
然后在你的蜘蛛中:
custom_settings = {
'RETRY_HTTP_CODES': RETRY_HTTP_CODES + [429],
}
回答你的问题:NO,scrapy-crawlera 中间件不处理 429
状态,它实际上不处理 "handle"任何状态,它只是处理 Crawlera 和 Scrapy 之间的通信。
现在,大约 Crawlera
,他们默认处理状态 429
,这意味着当他们获得 429
响应状态时,他们会将其标记为禁止并重试同样的要求。
如果 Crawlera 在多次重试后没有成功,它将 return 一个 503
状态给客户端(在这种情况下为 Scrapy)。
想知道是否有人知道在使用 scrapy 时 scrapy-crawlera 中间件是否处理 429 状态码,或者我是否需要实现自己的重试逻辑?
我似乎无法在任何地方找到它的记录
您可以使用以下方法扩展重试代码列表:
from scrapy.settings.default_settings import RETRY_HTTP_CODES
(在此处查看文档:https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#std:setting-RETRY_HTTP_CODES)
然后在你的蜘蛛中:
custom_settings = {
'RETRY_HTTP_CODES': RETRY_HTTP_CODES + [429],
}
回答你的问题:NO,scrapy-crawlera 中间件不处理 429
状态,它实际上不处理 "handle"任何状态,它只是处理 Crawlera 和 Scrapy 之间的通信。
现在,大约 Crawlera
,他们默认处理状态 429
,这意味着当他们获得 429
响应状态时,他们会将其标记为禁止并重试同样的要求。
如果 Crawlera 在多次重试后没有成功,它将 return 一个 503
状态给客户端(在这种情况下为 Scrapy)。