我尝试运行站点地图蜘蛛,但它拒绝抓取gzip sitemaps.It给出了以下错误
[scrapy] WARNING: Ignoring non-XML sitemap
是否需要启用一个设置以允许解析 gzipped sitemaps?
我使用scrapy版本0.15
答案 0 :(得分:3)
Scrapy应该自动解压缩gzip压缩内容。
中的责任代码 if isinstance(response, XmlResponse):
body = response.body
elif is_gzipped(response):
body = gunzip(response.body)
else:
log.msg("Ignoring non-XML sitemap: %s" % response, log.WARNING)
return
我认为XML格式错误,或者文件没有使用正确的标头进行gzip压缩。我建议在站点地图上尝试相同的蜘蛛,你确定它的格式化。
如果你想我可以运行我自己的测试,如果你可以提供我当前的代码 - 它将允许我给你一个更好的答案: - )。
答案 1 :(得分:1)
您可能希望注意到this commit Scrapy的作者昨天做过:
SitemapSpider:添加了对以.xml和.xml.gz结尾的网站地图网址的支持,即使它们的内容类型错误
您可以尝试克隆最新版本并重新尝试蜘蛛。
答案 2 :(得分:1)
我解决了将此问题添加到“settings.py”文件中的问题:
DOWNLOADER_MIDDLEWARES = {
'scrapy.contrib.downloadermiddleware.httpcompression.HttpCompressionMiddleware': None
}
显然这是一个Scrapy错误:https://github.com/scrapy/scrapy/issues/951