yan*_*ory 5 python concurrency scrapy
我对Scrapy DOWNLOAD_DELAY和MAX_CONCURRENT_REQUESTS_PER_DOMAINScrapy 之间的差异和相互作用感到非常困惑。
下载延迟是否会影响每个域的并发请求的最大数量,例如,如果我将延迟设置为10秒,但每个域允许8个并发请求,那么这些并发请求是否不会并发而会根据下载延迟而错开?被同时解雇,但响应的下载却被错开了?有什么理由DOWNLOAD_DELAY不打电话REQUEST_DELAY吗?
例如,在以下情况下,信封的吞吐量计算将是什么:
start_urls 拥有给定域的100个URLMAX_CONCURRENT_REQUESTS_PER_DOMAIN = 8DOWNLOAD_DELAY = 3start_urls相关的蜘蛛需要多长时间来处理此队列?
来自下载器源代码
conc = self.ip_concurrency if self.ip_concurrency else self.domain_concurrency
conc, delay = _get_concurrency_delay(conc, spider, self.settings)
Run Code Online (Sandbox Code Playgroud)
所以看起来行为与此相同,其中表示
This setting also affects DOWNLOAD_DELAY: if CONCURRENT_REQUESTS_PER_IP is non-zero, download delay is enforced per IP, not per domain.
Run Code Online (Sandbox Code Playgroud)
所以我认为你不会通过大的 download_delay 实现太多的并发性。我在具有自动节流功能的慢速网络上运行爬网程序,并且一次并发请求不超过 2-3 个。
| 归档时间: |
|
| 查看次数: |
1241 次 |
| 最近记录: |