前言:
本章内容是如何对爬取的数据进行去重,当你爬取了很多内容之后,这个去重复就尤为重要。
目录:
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