scrapy_redis如何进行去重
- 使用sha1,加密了请求方法,请求url地址,请求体,得到16进制字符串,存入redis的集合中
- 后续新来一个request对象,同样方法生成指纹,判断是否存在redis的集合中,存在就不放入
判断数据是否存在redis的集合中,同时要把数据存入该集合,怎么做
added = self.server.sadd(self.key, fp)
return added == 0 #返回的结果是0,说明fp已经存在,不是0说明不存在
rquest对象入队的条件
- 一个全新的request对象
- dont_filter 为True
- url地址在start_url中的request对象
去重
基于url地址的去重(url地址不会变)
- sha1,加密url,请求方法,请求体得到指纹结合redis进行去重
- 布隆过滤
根据数据本身进行去重复
- sha1,加密数据中重要的字段,得到数据的指纹,集合redis进行去重