scrapy 2.3 重復(fù)篩選器

2021-06-08 15:30 更新

查找重復(fù)項(xiàng)并刪除已處理的項(xiàng)的篩選器。假設(shè)我們的項(xiàng)目有一個(gè)唯一的ID,但是我們的spider返回具有相同ID的多個(gè)項(xiàng)目:

from itemadapter import ItemAdapter
from scrapy.exceptions import DropItem

class DuplicatesPipeline:

    def __init__(self):
        self.ids_seen = set()

    def process_item(self, item, spider):
        adapter = ItemAdapter(item)
        if adapter['id'] in self.ids_seen:
            raise DropItem(f"Duplicate item found: {item!r}")
        else:
            self.ids_seen.add(adapter['id'])
            return item


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)