0

我正在使用 scrapinghub 的 deltafetch 功能从网站获取新页面,而无需请求我已经抓取的网址。

我注意到在某些网站上,scrapy 仍然会使用已经访问过的 url 报废页面。我不得不只使用 url 替换默认的指纹 deltafetch_key。

它适用于 scrapy Spider,因为我可以在请求中定义元数据。但是,当使用CrawlSpiderand时SitemapSpider,我有点卡住了。例如,SitemapSpider, 有一个_parse_sitemap包含 的方法Requests,但我不能真正覆盖它。

我尝试使用自定义DOWNLOADER_MIDDLEWARES,通过使用process_request和添加request.meta['deltafetch_key'] = xxx. 但不知何故,在自定义下载器中间件之前调用了 deltafetch 蜘蛛中间件。

您有任何想法如何向of和中添加meta信息吗?RequestCrawlSpiderSitemapSpider

4

1 回答 1

0

您可以像这样覆盖原始元数据

r.meta['original_meta'] = response.meta

我从https://github.com/scrapy/scrapy/issues/704得到这个

于 2018-11-05T09:25:49.503 回答