Scrapy มีแนวคิดของ Item Pipelines ที่ ประมวลผลพร้อมกัน (ผ่าน Twisted) รายการที่ส่งคืนจาก Scrapy แมงมุม ตัวอย่างโค้ดต่อไปนี้มีไว้สำหรับ การกรองรายการที่ซ้ำกัน (คัดลอกโค้ดด้านล่าง) เป็นไปได้อย่างไรที่ set
สามารถใช้งานได้อย่างปลอดภัยโดยการโทรไปที่ process_item
พร้อมกัน ดูเหมือนว่า Scrapy จะเรียกใช้รายการไปป์ไลน์ ที่นี่ .
from scrapy.exceptions import DropItem
class DuplicatesPipeline:
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