Scrapy 暂停了几分钟
Scrapy paused for a few minutes
正如您在日志中看到的,我有一些停顿。之前 23:31:45
scrapy 几乎 20 秒就抓取了 31 页,但随后他从 23:31:45
暂停到 23:33:34
并在正常模式下继续他的工作。
我该如何解决这个问题或提供有关此问题的更多信息?
一些设置
CONCURRENT_REQUESTS_PER_DOMAIN = 16
# Enabled only for check logs
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_MAX_DELAY = 0
日志记录
23:31:44 [scrapy.extensions.throttle] INFO: slot: None | conc: 4 | delay: 0 ms (+0) | latency: 1279 ms | size: 43041 bytes
23:31:45 [scrapy.extensions.throttle] INFO: slot: None | conc: 4 | delay: 0 ms (+0) | latency: 798 ms | size: 10563 bytes
23:32:20 [scrapy.extensions.logstats] INFO: Crawled 31 pages (at 31 pages/min), scraped 2057 items (at 2057 items/min)
23:33:20 [scrapy.extensions.logstats] INFO: Crawled 31 pages (at 0 pages/min), scraped 2057 items (at 0 items/min)
23:33:34 [scrapy.extensions.throttle] INFO: slot: None | conc: 3 | delay: 0 ms (+0) | latency: 407 ms | size: 438 bytes
可能是因为 scrapy 所有的请求都失败了,那么它会默认重试 3 次,这会减慢速度。您正在抓取的服务器可能正在限制您的请求。您的请求从服务器收到了什么状态代码?如果您收到 429 错误,那么您可能会发送很多请求。
编辑
尝试在settings.py中添加DOWNLOAD_TIMEOUT
,默认值是3分钟,这意味着scrapy可以等待很长时间让服务器超时。尝试设置为较小的值。 Scrapy docs download_timeout
正如您在日志中看到的,我有一些停顿。之前 23:31:45
scrapy 几乎 20 秒就抓取了 31 页,但随后他从 23:31:45
暂停到 23:33:34
并在正常模式下继续他的工作。
我该如何解决这个问题或提供有关此问题的更多信息?
一些设置
CONCURRENT_REQUESTS_PER_DOMAIN = 16
# Enabled only for check logs
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_MAX_DELAY = 0
日志记录
23:31:44 [scrapy.extensions.throttle] INFO: slot: None | conc: 4 | delay: 0 ms (+0) | latency: 1279 ms | size: 43041 bytes
23:31:45 [scrapy.extensions.throttle] INFO: slot: None | conc: 4 | delay: 0 ms (+0) | latency: 798 ms | size: 10563 bytes
23:32:20 [scrapy.extensions.logstats] INFO: Crawled 31 pages (at 31 pages/min), scraped 2057 items (at 2057 items/min)
23:33:20 [scrapy.extensions.logstats] INFO: Crawled 31 pages (at 0 pages/min), scraped 2057 items (at 0 items/min)
23:33:34 [scrapy.extensions.throttle] INFO: slot: None | conc: 3 | delay: 0 ms (+0) | latency: 407 ms | size: 438 bytes
可能是因为 scrapy 所有的请求都失败了,那么它会默认重试 3 次,这会减慢速度。您正在抓取的服务器可能正在限制您的请求。您的请求从服务器收到了什么状态代码?如果您收到 429 错误,那么您可能会发送很多请求。
编辑
尝试在settings.py中添加DOWNLOAD_TIMEOUT
,默认值是3分钟,这意味着scrapy可以等待很长时间让服务器超时。尝试设置为较小的值。 Scrapy docs download_timeout