Scrapy: Карта сайта, паук и сжатые файлы - PullRequest
2 голосов
/ 23 декабря 2011

Я попытался запустить паук, но он отказался сканировать gzipped sitemaps.It выдал следующую ошибку

[scrapy] WARNING: Ignoring non-XML sitemap 

есть ли параметр, который необходимо включить, чтобы разрешить анализ gzipped файлы Sitemap?

Я использую скрап версии 0.15

Ответы [ 3 ]

3 голосов
/ 23 декабря 2011

Scrapy должен автоматически разархивировать сжатый контент.

См. Ответственный код в 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 имеет неправильный формат, либо файл не содержит правильных заголовков. Я предлагаю попробовать тот же паук на карте сайта, в которой вы уверены, что он форматирует.

Если вы хотите, чтобы я мог самостоятельно выполнить тестирование, если вы можете предоставить мне свой текущий код - это позволит мне дать вам лучший ответ: -).

2 голосов
/ 04 января 2012

Возможно, вы захотите обратить внимание на этот коммит Автор Scrapy сделал вчера:

SitemapSpider: добавлена ​​поддержка URL-адресов карт сайта, заканчивающихся на .xml и .xml.gz, дажеесли у них неправильный тип контента

Вы можете попробовать клонировать последнюю версию и повторить попытку вашего паука.

1 голос
/ 20 ноября 2014

Я решил проблему, добавив это в файл "settings.py":

DOWNLOADER_MIDDLEWARES = {
    'scrapy.contrib.downloadermiddleware.httpcompression.HttpCompressionMiddleware': None
}

Видимо, это ошибка Scrapy: https://github.com/scrapy/scrapy/issues/951

...