我正在使用scrapinghub的deltafetch功能来从网站获取新页面,而无需请求我已经抓取的网址。
我注意到,在某些网站上,scrapy仍会刮擦带有已访问过的URL的页面。我只需要使用网址就可以替换默认的指纹deltafetch_key。
因为我可以在请求中定义元数据,所以它可以很好地与Spider
配合使用。但是,当使用CrawlSpider
和SitemapSpider
时,我有点卡住了。例如,SitemapSpider
有一个_parse_sitemap
方法,其中包含Requests
,但是我无法真正覆盖它。
我尝试使用自定义DOWNLOADER_MIDDLEWARES
,方法是使用process_request
并添加request.meta['deltafetch_key'] = xxx
。但是以某种方式,在自定义下载程序中间件之前调用了deltafetch Spider中间件。
您有任何想法如何将meta
信息添加到Request
和CrawlSpider
的{{1}}中吗?
答案 0 :(得分:0)
您可以像这样覆盖原始的元数据
r.meta['original_meta'] = response.meta