Item pipeline去重

2019-02-24  本文已影响0人  垃圾桶边的狗
“from scrapy.exceptions import DropItem


     class DuplicatesPipeline(object):


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


     def process_item(self, item, spider):
        name = item['name']
        if name in self.book_set:
            raise DropItem("Duplicate book found: %s" % item)
            self.book_set.add(name)
        return item”


对上述代码解释如下:
● 增加构造器方法,在其中初始化用于对书名去重的集合。
● 在process_item方法中,先取出item的name字段,检查书名是否已在集合book_set中,如果存在,就是重复数据,抛出DropItem异常,将item抛弃;否则,将item的name字段存入集合,返回item。”

摘录来自: 刘硕. “精通Scrapy网络爬虫。” iBooks.

上一篇 下一篇

猜你喜欢

热点阅读