使用自动节流
与控制最大并发级别密切相关的是限制的概念。 网站处理请求的能力各不相同,无论是跨多个网站还是在不同时间在单个网站上。 在响应时间较慢的时期,减少这段时间内的请求数量是有意义的。 手动监控和调整可能是一个繁琐的过程。
对我们来说幸运的是,scrapy 还提供了通过名为 AutoThrottle 的扩展来执行此操作的功能。
如何做
可以使用 AUTOTHROTTLE_TARGET_CONCURRENCY 设置轻松配置 AutoThrottle:
process = CrawlerProcess({
'AUTOTHROTTLE_TARGET_CONCURRENCY': 3
})
process.crawl(Spider)
process.start()