爬虫查重方法汇总

507 阅读1分钟

1. 标题,来源查重.

这种方法会有一定误差,好处是方便,可以直接在爬虫软件中设定。

2. url 查重.

用url 在表中查,或是url 放在 redis  set 结构中查,数据量小时没问题,数据量大了影响速度。

3. url 做hash 查重,如:md5, mysql crc32 

 对url 做hash,  可以提升查询的速度,有外部hash ,如md5, md5是一种避免冲突的hash 方法;或是mysql 中的crc32, crc64方法。crc32 是容易冲突的hash 方法,查询时要带上url   如:url_crc = crc32(url) and url = url .

4. 布隆表达式(BloomFilter)  

     布隆表达式也是一种hash 方法,它通过hash函数把字符串 映射到bit,  多个hash 函数映射成多个bit  ,用多个bit 位来表示一个字符串。  优点:存储空间很小;一般在数据量(>10w)大时使用,速度快。缺点:有一定误差,容易把不同的url 识别成相同的hash; hash 值不能删除。

5. simhash 查重

     语义查重方法,共分五步:

  1.     文本进行分词,统计词频
  2.     分词进行向量化
  3.     对向量用词频加权
  4.     各分词向量相加得到一条向量
  5.      降维:对向量各位按照阀值进行0 1 变换,大于0的变成1, 小于0的变成0

这样一段文本就映射成64位bit。二段文本比较时,用二进制进行汉明距离对比,不同 >=3判定为不重复,<3 是重复文本。