每当我运行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}$我刚开始与刮毛,我将非常感谢你的知识渊博的解决办法。在
您的输出/日志中是否有这样一行:
听起来您请求的响应超过1GB。您的错误来自于download handler,它defaults to one gig,但是可以很容易地overridden:
settings.py
文件download_maxsize
的手册Request meta key。在啊-简单!:)
只需打开the source code错误被抛出的地方。。。页面似乎不止
maxsize
。。。这就引出了我们here。在所以,问题是你试图得到大文件。增加设置中的
DOWNLOAD_MAXSIZE
限制,应该没问题。在注意:您的性能会受到影响,因为您阻塞了CPU来进行PDF解码,而在这种情况下,不会再发出任何请求。Scrapy的架构是严格的单线程的。以下是两种(多种解决方案中的一种):
a)使用file pipeline下载文件,然后使用其他系统批处理它们。在
b)使用
reactor.spawnProcess()
并使用单独的进程进行PDF解码。(see here)。这允许您使用Python或任何其他命令行工具来进行PDF解码。在相关问题 更多 >
编程相关推荐