nutch 过滤掉不正确的URL实现方法:

nutch 1.0 读源码,过滤掉不正确的URL实现方法:

对URL不规则或想过滤掉的地方,可以通过修改源码来实现,省去写配置文件,因为配置文件并不是太明朗,有些配置了也不一定成功。所以我考虑在源码 上作操作。更好地扩展。当然你也可以去写插件,这儿就不说了,因为我也没有去那样实现,我只是对插件进行了扩展采集自己想要的内容。

 

过滤URL部分:

类:CrawlDbFilter

 

// 对url过滤的处理方法。可以实现一个自己的过滤器对URL进行重新定义成自己喜欢的URL
  public void map(Text key, CrawlDatum value,
      OutputCollector<Text, CrawlDatum> output,
      Reporter reporter) throws IOException {

    String url = key.toString();
    if (urlNormalizers) {
      try {
        url = normalizers.normalize(url, scope); // normalize the url
      } catch (Exception e) {
        LOG.warn("Skipping " + url + ":" + e);
        url = null;
      }
    }
    if (url != null && urlFiltering) {
      try {
       //此处为过滤的URL规则
        url = filters.filter(url); // filter the url
      } catch (Exception e) {
        LOG.warn("Skipping " + url + ":" + e);
        url = null;
      }
    }
   
    //在此加入自己的过滤器:如定义MyUrlFilter
    //即可以如此判断:
    // if(url != null){
    //  url = MyUrlFilter.filter(url);//处理掉不要的url
    // }
   
   
    //如果两次过滤都符合要求规则,则为有效URL
    if (url != null) { // if it passes
      newKey.set(url); // collect it
      output.collect(newKey, value);
    }
  }

 

原文来自:http://nhy520.iteye.com/blog/693512

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值