官方去重:
scrapy官方文档的去重模块,只能实现对当前抓取数据的去重,并不会和数据库里的数据做对比。也就是说如果你抓了100条数据,里面有10条重复了,它会丢掉这10条,但100条里有20条和数据库的数据重复了,它也不管,照样存进去。
Python
class DuplicatesPipeline(object):
def __init__(self):
self.url_seen = set()
def process_item(self, item, spider):
if item['art_url'] in self.url_seen: #这里替换成你的item['#']
raise DropItem("Duplicate item found: %s" % item)
else:
self.url_seen.add(item['art_url']) #这里替换成你的item['#']
return item
1
2
3
4
5
6
7
8
9
10
11
12
classDuplicatesPipeline(object):
def__init__(self):
self.url_seen=set()
defprocess_item(self,item,spider):
ifitem['art_url']inself.url_seen:#这里替换成你的item['