我的用例是这样的:我有10 spiders
,AUTO_THROTTLE_ENABLED
设置全局设置为True
。问题是,对于其中一个spiders
运行时WITHOUT auto-throttling
是4天,但运行时WITH自动限制是40天......
我想找到一个平衡点,让蜘蛛在15天内运行(原始量的3倍)。我今天早上一直在阅读scrapy
文档,但整件事让我很困惑。任何人都可以告诉我如何在全局范围内启用auto-throttle
,并且只需调低它限制的数量吗?
答案 0 :(得分:1)
Auto_throttle专门设计,因此您无需手动调整DOWNLOAD_DELAY
。将DOWNLOAD_DELAY
设置为某个数字会设置下限,这意味着AUTO_THROTTLE
的速度不会超过DOWNLOAD_DELAY
中设置的数字。由于这不是您想要的,您最好的选择是将AUTO_THROTTLE
设置为除了您想要更快的蜘蛛之外的所有蜘蛛,并手动设置DOWNLOAD_DELAY
仅适用于没有{{1实现你想要的任何效率。
答案 1 :(得分:1)
来自AutoThrottle extension 只需添加:
DOWNLOAD_DELAY = 1.5
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_START_DELAY = 2
AUTOTHROTTLE_TARGET_CONCURRENCY = 6
....
你在settings.py
中想要的任何东西答案 2 :(得分:0)
设置DOWNLOAD_DELAY = some_number
,其中some_number
是您希望每个请求的延迟(以秒为单位)和RANDOMIZE_DOWNLOAD_DELAY = False
,因此它可以是静态的。
答案 3 :(得分:0)
如果2020年或以后的某个人仍需要答案。您可以覆盖每个蜘蛛的所有全局设置: https://docs.scrapy.org/en/latest/topics/settings.html#settings-per-spider