【发布时间】:2014-09-17 10:13:56
【问题描述】:
我刚开始使用scrapy,我想要一种方法来保存以前抓取过的网址,这样我就可以运行后续的抓取,并且只从未知的网址中获取新数据。我看到了几种过滤重复项的不同方法和几种持久化数据的方法。我想知道在scrapy 0.24版中推荐的进行这些活动的方法是什么。以下是我看到的选项:
用于重复过滤
settings.py 文件中的DUPEFILTER_CLASS 仍在文档中引用。我还看到有关在ItemPipeline 中放置重复过滤器的文档,如下所示:http://doc.scrapy.org/en/latest/topics/item-pipeline.html?highlight=duplicates#duplicates-filter
人们是否在使用 DUPEFILTER_CLASS 或在项目管道中放置 dupefilter?
用于持续重复跟踪
我曾尝试使用scrapy-redis 来保留以前被抓取的 URL,以便它们可以被重复过滤器使用,但似乎我正在使用的任何DUPEFILTER_CLASS 都被忽略了。我还看到如果您在运行时使用JOBDIR 选项,spider.state 将存储一个字典,但这似乎不是用于重复过滤的最佳选择。
谁能给我一个代码示例,该示例可用于在批次之间保存数据并进行重复过滤?
【问题讨论】:
标签: python redis scrapy web-scraping