您现在的位置:首页 > >

浅谈Scrapy去重原理

发布时间:


上面文章我们介绍了Scrapy的框架,这篇文章主要介绍Scrapy去重原理。去重的意思就是对以往数据进行一个比对,判断是否已经存在。爬虫中的去重根据请求的url、请求方法、请求参数、请求体进行唯一标识,进行比对,由于这四个数据加到一起,内容较长,因此使用求指纹的方式来进行去重判断。
Scrapy本身自带有一个中间件(Middlewares);scrapy源码中可以找到一个dupefilters.py去*;需要将dont_filter设置为False开启去重,默认是True,没有开启去重;
对于每一个url的请求,调度器都会根据请求得相关信息加密得到一个指纹信息,并且将指纹信息和set()集合中的指纹信息进行比对,如果set()集合中已经存在这个数据,就不在将这个Request放入队列中;如果set()集合中没有存在这个加密后的数据,就将这个Request对象放入队列中,等待被调度。
一般在request请求的参数中加入dont_filter=False可以关闭去重,方便重复爬取同一网站下不同页面的信息。也可以通过修改爬取规则如start_url等或自定义爬取url作为请求的参数以避免不必要的去重。
文章部分内容源于网络,联系侵删*


热文推荐
猜你喜欢
友情链接: 大学学习资料 人文社科 经营营销资料 工程资料大全 IT文档 自然科学