Walks

网络安全爱好者

Python3学习系列(七):Scrapy如何过滤重复数据

《Python3学习系列(七):Scrapy如何过滤重复数据》

前言:

本章内容是如何对爬取的数据进行去重,当你爬取了很多内容之后,这个去重复就尤为重要。 

目录: 

0x01:去重方法

0x02:代码实现 


0x01 去重方法

1:对URL进行去重(判断URL是否重复)

2:对数据进行去重(判断是否是重复数据)


0x02 代码实现

URL去重

#dont_filter=False 就是url是否处理的意思,有一个自带的过滤器
yield scrapy.Request(url, self.parse, dont_filter=False)

数据去重

from scrapy.exceptions import DropItem 

class DuplicatesPipeline(object): 
    def __init__(self):
        #set为集合,集合为数据不重复无排序的 
        self.data_set = set() 
         

    def process_item(self, item, spider):
        data = item['data']
        #如果数据已经存在,抛出DropItem异常,丢弃item数据,不会再传给后面继续处理
        if data in self.data_set: 
            raise DropItem("Duplicate item found: %s" % item) 
        #不存在时,就添加数据 
        self.data_set.add(item['data']) 
        return item

坚持下去吧,相信看完我的文章,你对于Scrapy的运用也会有一个新的理解的

转载请注明来自:www.bywalks.com

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 2 = 1