Scrapy 超时和 Twisted.Internet.Error
Scrapy Timeouts and Twisted.Internet.Error
运行 Scrapy with Proxies 但有时爬行 运行s 会在 运行 末尾出现以下错误,导致爬行完成时间延迟10 多秒。我怎样才能做到,如果 Scrapy 运行 在任何时候遇到这些错误,它会在检测到时立即 ignored/passed ,这样它就不会浪费时间拖延整个爬虫?
RETRY_ENABLED = 假
(已设置 settings.py。)
请求中的网址列表。许多代理设置为 https:// 而不是 http,想提一下,尽管在几乎所有情况下 https 都有效,所以我怀疑它是否严格地设置了 https 与 http。
但还是得到:
错误 1:
- 2019-01-20 20:24:02 [scrapy.core.scraper] 调试:从 <200>
中删除
- ------------花费了 8 秒-----------------
- 2019-01-20 20:24:10 [scrapy.proxies] 信息:删除失败的代理
- 2019-01-20 20:24:10 [scrapy.core.scraper] 错误:下载错误
- 回溯(最近调用最后):
- 文件“/usr/local/lib64/python3.7/site-packages/scrapy/core/downloader/middleware.py”,第 43 行,在 process_request
defer.returnValue((产量download_func(请求=请求,蜘蛛=蜘蛛)))
- scrapy.core.downloader.handlers.http11.TunnelError: 无法使用代理打开 CONNECT 隧道 ukimportantd2.fogldn.com:10492 [{'status': 504, 'reason': b'Gateway超时'}]
错误 2:
- 2019-01-20 20:15:46 [scrapy.proxies] 信息:删除失败的代理
- 2019-01-20 20:15:46 [scrapy.core.scraper] 错误:下载错误
- ------------花费了 12 秒-----------------
- 2019-01-20 20:15:58 [scrapy.core.engine] 信息:关闭蜘蛛(已完成)
- 回溯(最近调用最后):
- 文件“/usr/local/lib64/python3.7/site-packages/scrapy/core/downloader/middleware.py”,第 43 行,在 process_request
defer.returnValue((产量download_func(请求=请求,蜘蛛=蜘蛛)))
- twisted.web._newclient.ResponseNeverReceived:[twisted.python.failure.Failure twisted.internet.error.ConnectionLost:与另一端的连接以不干净的方式丢失:连接丢失。]
错误 3:
- 回溯(最近调用最后):
- 文件“/usr/local/lib64/python3.7/site-packages/scrapy/core/downloader/middleware.py”,第 43 行,在 process_request
defer.returnValue((产量download_func(请求=请求,蜘蛛=蜘蛛)))
- twisted.web._newclient.ResponseNeverReceived: [twisted.python.failure.Failure twisted.internet.error.ConnectionLost: 与另一端的连接丢失。]
How can I make it so that if Scrapy runs into these errors at any point, it is ignored/passed completely and immediately when detected
已经是这样了。代理要么在几秒钟后而不是立即导致错误,要么直接超时。
如果您不愿意等待,可以考虑降低 DOWNLOAD_TIMEOUT
设置,但过去需要很长时间但工作的响应可能会开始超时。
更好的方法可能是切换到更好的代理,或考虑使用智能代理(例如 Crawlera)。
运行 Scrapy with Proxies 但有时爬行 运行s 会在 运行 末尾出现以下错误,导致爬行完成时间延迟10 多秒。我怎样才能做到,如果 Scrapy 运行 在任何时候遇到这些错误,它会在检测到时立即 ignored/passed ,这样它就不会浪费时间拖延整个爬虫?
RETRY_ENABLED = 假 (已设置 settings.py。)
请求中的网址列表。许多代理设置为 https:// 而不是 http,想提一下,尽管在几乎所有情况下 https 都有效,所以我怀疑它是否严格地设置了 https 与 http。
但还是得到:
错误 1:
- 2019-01-20 20:24:02 [scrapy.core.scraper] 调试:从 <200> 中删除
- ------------花费了 8 秒-----------------
- 2019-01-20 20:24:10 [scrapy.proxies] 信息:删除失败的代理
- 2019-01-20 20:24:10 [scrapy.core.scraper] 错误:下载错误
- 回溯(最近调用最后):
- 文件“/usr/local/lib64/python3.7/site-packages/scrapy/core/downloader/middleware.py”,第 43 行,在 process_request defer.returnValue((产量download_func(请求=请求,蜘蛛=蜘蛛)))
- scrapy.core.downloader.handlers.http11.TunnelError: 无法使用代理打开 CONNECT 隧道 ukimportantd2.fogldn.com:10492 [{'status': 504, 'reason': b'Gateway超时'}]
错误 2:
- 2019-01-20 20:15:46 [scrapy.proxies] 信息:删除失败的代理
- 2019-01-20 20:15:46 [scrapy.core.scraper] 错误:下载错误
- ------------花费了 12 秒-----------------
- 2019-01-20 20:15:58 [scrapy.core.engine] 信息:关闭蜘蛛(已完成)
- 回溯(最近调用最后):
- 文件“/usr/local/lib64/python3.7/site-packages/scrapy/core/downloader/middleware.py”,第 43 行,在 process_request defer.returnValue((产量download_func(请求=请求,蜘蛛=蜘蛛)))
- twisted.web._newclient.ResponseNeverReceived:[twisted.python.failure.Failure twisted.internet.error.ConnectionLost:与另一端的连接以不干净的方式丢失:连接丢失。]
错误 3:
- 回溯(最近调用最后):
- 文件“/usr/local/lib64/python3.7/site-packages/scrapy/core/downloader/middleware.py”,第 43 行,在 process_request defer.returnValue((产量download_func(请求=请求,蜘蛛=蜘蛛)))
- twisted.web._newclient.ResponseNeverReceived: [twisted.python.failure.Failure twisted.internet.error.ConnectionLost: 与另一端的连接丢失。]
How can I make it so that if Scrapy runs into these errors at any point, it is ignored/passed completely and immediately when detected
已经是这样了。代理要么在几秒钟后而不是立即导致错误,要么直接超时。
如果您不愿意等待,可以考虑降低 DOWNLOAD_TIMEOUT
设置,但过去需要很长时间但工作的响应可能会开始超时。
更好的方法可能是切换到更好的代理,或考虑使用智能代理(例如 Crawlera)。