使用布隆去重代替scrapy_redis(分布式爬虫)自带的dupefilter
使用布隆去重代替scrapy_redis(分布式爬虫)自带的dupefilter
Github下载链接:https://github.com/liyaopinner/BloomFilter_imooc
精简版百度云盘链接: https://pan.baidu.com/s/11a_K_6WTifeHTG8lIY5ckQ 提取码: kq73
- 安装mmh3库
a>使用布隆去重之前需要安装mmh3库,这里我们直接下载已经编译过的mmh3文件
百度云盘下载链接: https://pan.baidu.com/s/1-MxZkQHd7J4g_nctHPe_Xg 提取码: y6q5
下载完成之后,解压文件,将这个两个文件复制到现在使用的python环境中
b>例如我现在用的是虚拟环境,放置之后python虚拟环境就相当于安装了该包 - Bloom文件
a>如果是在github上下载,需要对源代码进行修改,如果是在百度云盘上下载,因为百度云盘上的代码我已经修改过了,所以直接可以跳到c>步骤
b>复制这两行代码,添加if name == ‘main’,并对__init__函数进行修改
c>将修改后的这个py文件放到scrapy_redis文件夹下 - 修改scrapy_redis中的dupefilter.py
a>打开scrapy_redis中的dupefilter.py文件,首先导入刚刚修改的布隆去重的包
b>在初始化函数中初始化PyBloomFilter()对象
c>最后找到def request_seen(self, request):这个方法,重写这个方法 - 到此为止咱们已经将scrapy_redis自带的去重替换成了布隆去重了