得到扭曲延迟取消错误当使用刮痧时

2024-09-19 20:36:46 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我运行scrapy crawl命令时,会出现以下错误:

2016-03-12 00:16:56 [scrapy] ERROR: Error downloading <GET http://XXXXXXX/rnd/sites/default/files/Agreement%20of%20FFCCA(1).pdf>
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/scrapy/core/downloader/handlers/http11.py", line 246, in _cb_bodyready
    raise defer.CancelledError()
CancelledError
2016-03-12 00:16:56 [scrapy] ERROR: Error downloading <GET http://XXXXXX/rnd/sites/default/files/S&P_Chemicals,etc.20150903.doc>
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/scrapy/core/downloader/handlers/http11.py", line 246, in _cb_bodyready
    raise defer.CancelledError()
CancelledError

我试过在网上搜索这个错误,但没有任何好处。在

我的爬虫程序代码如下:

^{pr2}$

我刚开始与刮毛,我将非常感谢你的知识渊博的解决办法。在


Tags: inpylibpackagesusrdist错误line
2条回答

您的输出/日志中是否有这样一行:

Expected response size X larger than download max size Y.

听起来您请求的响应超过1GB。您的错误来自于download handler,它defaults to one gig,但是可以很容易地overridden

啊-简单!:)

只需打开the source code错误被抛出的地方。。。页面似乎不止maxsize。。。这就引出了我们here。在

所以,问题是你试图得到大文件。增加设置中的DOWNLOAD_MAXSIZE限制,应该没问题。在

注意:您的性能会受到影响,因为您阻塞了CPU来进行PDF解码,而在这种情况下,不会再发出任何请求。Scrapy的架构是严格的单线程的。以下是两种(多种解决方案中的一种):

a)使用file pipeline下载文件,然后使用其他系统批处理它们。在

b)使用reactor.spawnProcess()并使用单独的进程进行PDF解码。(see here)。这允许您使用Python或任何其他命令行工具来进行PDF解码。在

相关问题 更多 >