【发布时间】:2023-03-15 10:37:01
【问题描述】:
from scrapy.exceptions import DropItem
class DuplicatesPipeline(object):
def __init__(self):
self.ids_seen = set()
def process_item(self, item, spider):
if item['id'] in self.ids_seen:
raise DropItem("Duplicate item found: %s" % item)
else:
self.ids_seen.add(item['id'])
return item
以上代码来自Scrapy官网:http://doc.scrapy.org/en/latest/topics/item-pipeline.html 用于过滤重复项。
正如 Scrapy 文档所建议的那样,http://doc.scrapy.org/en/latest/topics/jobs.html 要暂停和恢复蜘蛛,我需要使用 Jobs 系统。
所以我很好奇 Scrapy Jobs 系统是否可以使重复过滤器在其目录中持久化。实现重复过滤器的方式非常简单,我对此表示怀疑。
【问题讨论】:
标签: python web-scraping scrapy web-crawler scrapy-pipeline