Я использую функцию deltafetch от scrapinghub, чтобы получать новые страницы с веб-сайта, не запрашивая URL, которые я уже просмотрел.
Я заметил, что на некоторых веб-сайтах scrapy по-прежнему отбрасывает страницы с уже посещенным URL. Мне пришлось заменить отпечаток пальца по умолчанию deltafetch_key, просто используя URL.
Отлично работает с scrapy Spider
, так как я могу определять мета в запросах. Однако при использовании CrawlSpider
и SitemapSpider
я немного застрял. Например, у SitemapSpider
есть метод _parse_sitemap
, который включает Requests
, но я не могу переопределить его.
Я пытался использовать пользовательский DOWNLOADER_MIDDLEWARES
, используя process_request
и добавляя request.meta['deltafetch_key'] = xxx
. Но каким-то образом промежуточное программное обеспечение deltafetch spider вызывается раньше, чем пользовательское промежуточное ПО загрузчика.
У вас есть идеи, как добавить meta
информацию к Request
из CrawlSpider
и SitemapSpider
?