指示Scrapy忽略站点的内容长度

时间:2016-04-09 07:57:33

标签: python http curl scrapy

问题

如何在Scrapy中忽略响应的内容长度?

解释

考虑这个curl命令“

curl -u <user:pass> http://data.icecat.biz/export/level4/NL/files.index.xml

它目前失败,因为Icecat已经错误地设置了内容长度标题。

我们可以通过使用curl的 ignore-content-length 参数忽略内容长度来解决这个问题:

curl --ignore-content-length -u <user:pass> http://data.icecat.biz/export/level4/NL/files.index.xml

一切正常!

但我不知道如何在Scrapy中执行此操作。 谷歌和文档对我没有任何启示。

在我深入研究Scrapy代码来解决这个问题之前,也许有人已经这样做了。

2 个答案:

答案 0 :(得分:2)

您可以在命令行使用download_maxsize=0将Scrapy下载的最大响应大小设置为“无限制”(使用scrapy crawl myspider -s download_maxsize=0)。默认值为1024字节。

您也可以在scrapy.spiders.Spider.custom_settings属性,Scrapy项目的myproject.settings模块中的每个项目或scrapy.settings.default_settings模块中的全局项目中执行每个蜘蛛。

请参阅此选项的官方Scrapy文档here或有关内置设置的更多说明here

答案 1 :(得分:1)

此问题已在Scrapy 1.5中修复 引入了新设置 - DOWNLOAD_FAIL_ON_DATALOSS 您需要在项目设置中将其设置为False。