转:网页爬取页面去重策略

网上搜集到的网页去重策略:
1.通过MD5生成电子指纹来判断页面是否改变
2.nutch去重策略: nutch中digest是对采集的每一个网页内容的32位哈希值,如果两个网页内容完全一样,它们的digest值肯定会一样,但哪怕其中之一多或少一个空格,它们的digest值就会不一样。所以,我认为,用digest做id是一个非常不错的选择。
    如果nutch在两次不同的时间抓某个网页,例如还有新浪首页http://www.sina.com.cn,如果在两次抓取这段时间,首页没有什么变化,nutch计算出的两次抓取的首页的digest肯定是一样的,这样,nutch在第二次向solr进行索引时,发现digest在solr的索引库中已存在(id是唯一的),自然就写不进去。这样,避免了索引库的重复记录。
  同时,采用digest作为Id,也避免了一个行业内部网有镜像网站在solr索引库的重复记录。

      总之,采用digest作为Id,防止了nutch在向solr索引库写入时写入重复记录的问题,有天然去重功能。

      但是,还必须解决一个问题:如果nutch在两次不同的时间抓某个网页,如果这个网页有变化,两次的digest值肯定不同,这样,nutch在向solr索引库update时,会将同一个url(如http://www.sina.com.cn)写入两条记录。那么,在搜索界面键入:新浪,肯定会出现两条新浪网站数据。如此类推,nutch采集了同一url网页n 次,就有可能在solr索引库中有n条相似的记录。这样的情况出现让我很抓狂,陷于困局之中。

       其实,这就是对同一个url进行去重的问题。nutch有一个去重的模块org.apache.nutch.indexer.solr.SolrDeleteDuplicates.java,命令为:bin/nutchsolrdedup,分析发现,它是对digest相同的记录进行去重。估计是nutch把url作为solr的主键id,所以没有考虑到对url相同的记录进行去重。代码如下:nutch与起点R3集成之笔记

转自:http://blog.sina.com.cn/s/blog_623584750101eeb4.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值