如何设置Scrapy Auto_Throttle设置

时间:2015-04-20 17:08:54

标签: python web-scraping scrapy

我的用例是这样的:我有10 spidersAUTO_THROTTLE_ENABLED设置全局设置为True。问题是,对于其中一个spiders运行时WITHOUT auto-throttling是4天,但运行时WITH自动限制是40天......

我想找到一个平衡点,让蜘蛛在15天内运行(原始量的3倍)。我今天早上一直在阅读scrapy文档,但整件事让我很困惑。任何人都可以告诉我如何在全局范围内启用auto-throttle,并且只需调低它限制的数量吗?

4 个答案:

答案 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