python爬虫实例之重复过滤怎样进行筛重

  介绍

这篇文章给大家分享的是有python爬关虫实例之重复过滤怎样进行筛重的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

重复过滤

Scrapy中用集合实现这个请求去重功能,Scrapy中把已经发送的请求指纹放入到一个集合中,把下一个请求的指纹拿到集合中比对,如果该指纹存在于集合中,说明这个请求发送过了,如果没有则继续操作。这个核心的判重功能是这样实现的:

def  request_seen(自我,,请求):   ,,,,,,,#,self.request_figerprints就是一个指纹集合,,   ,,,,,,,fp =, self.request_fingerprint(请求)   ,   ,,,,,,,#,这就是判重的核心操作,,   ,,,,,,,if  fp 拷贝self.fingerprints:   ,,,,,,,,,,,return 真实的   ,,,,,,,self.fingerprints.add (fp)   ,,,,,,,if  self.file:   ,,,,,,,,,,,self.file.write(时间+ fp  os.linesep)

在scrapy-redis中去重是由重复滤波器组件来实现的,它通过复述的设置不重复的特性,巧妙的实现了重复滤去重.scrapy-redis调度器从引擎接受请求,将请求的指纹存?复述的组检查是否重复,并将不重复把写的要求吗?复述的请求队列。

引擎请求请求(蜘蛛发出的)时,调度器从复述的请求队列队列?里根据优先级流行出吗?个请求返回给引擎,引擎将此请求发给蜘蛛处理。

有了重复滤波器组件,对于爬虫找回的数据就可以提供有效的爬取意见,也不用担心爬虫会因为重复的数据而耽误获取的时间和进度了。

感谢各位的阅读!关于python爬虫实例之重复过滤怎样进行筛重就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

python爬虫实例之重复过滤怎样进行筛重