Scrapy重复筛选器能否与Jobs保持一致?

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系统是否可以使重复过滤器持久保存在其目录中。实现重复过滤器的方法非常简单,我对此表示怀疑。

shen453927 回答:Scrapy重复筛选器能否与Jobs保持一致?

您只需要实现管道,以便它读取JOBDIR设置,并在定义该设置后读取您的管道:

  1. self.ids_seen目录内的某个文件读取JOBDIR的初始值。

  2. 在运行时,它将新文件更新为该文件。

本文链接:https://www.f2er.com/3159062.html

大家都在问