Scrapy:Sitemap蜘蛛和gzipped文件

时间:2011-12-23 06:17:01

标签: sitemap scrapy

我尝试运行站点地图蜘蛛,但它拒绝抓取gzip sitemaps.It给出了以下错误

[scrapy] WARNING: Ignoring non-XML sitemap 

是否需要启用一个设置以允许解析 gzipped sitemaps?

我使用scrapy版本0.15

3 个答案:

答案 0 :(得分:3)

Scrapy应该自动解压缩gzip压缩内容。

请参阅contrib/spiders/sitemap.py

中的责任代码
        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