nutch 抓取动态网页设置


nutch过滤规则crawl-urlfilter.txt vs regex-urlfilter.txt

需要注意在conf下面的2个文件:regex-urlfilter.txt,crawl-urlfilter.txt
     # skip URLs containing certain characters as probable queries, etc.
     -[?*!@=] (-改+)
     这段意思是跳过在连接中存在? * ! @ = 的页面,因为默认是跳过所以,在动态页中存在?一般按照默认的是不能抓取到的。可以在上面2个文件中都修改成:
     # skip URLs containing certain characters as probable queries, etc.
     # -[?*!@=]
     另外增加允许的一行
     # accept URLs containing certain characters as probable queries, etc.
     +[?=&]
    意思是抓取时候允许抓取连接中带 ? = & 这三个符号的连接
     注意:两个文件都需要修改,因为NUTCH加载规则的顺序是crawl-urlfilter.txt-> regex-urlfilter.txt


首先有一种说法是:crawl-urlfilter.txt 是供intranet(局域网) 抓取用的,

regex-urlfilter.txt 是供internet(互联网) 抓取用的

因为两者抓取的重点不同,从而导致过滤规则不同。如果你只是想知道两者的简单区别的话,那么看到这里也就可以了,但是如果你想知道更多细节那么下面的内容还是值得一看的

crawl-urlfilter.txtregex-urlfilter.txt 都是用来保存过滤url 的正则表达式的。类 RegexURLFilter(org.apache.nutch.net.RegexURLFilter) 通过 NutchConf.get().get(“urlfilter.regex.file”) 来从中(当然如果你装载了其他配置文件的话,也可能有其他的候选者)进行选择。

regex-urlfilter.txt 是 urlfilter.regex.file 属性的缺省值(1) , 定义在 $NUTCH_JAVA_HOME/conf/nutch-default.xml(如果你设置了环境变量NUTCH_CONF_DIR 的话,那就是 $NUTCH_CONF_DIR/nutch-default.xml)中。该值可以被后续加载的配置文件所覆盖,例如如果你装载了类 CrawlTool(org.apache.nutch.tool.CrawlTool),那么缺省值就会被 crawl-tool.xml 中的urlfilter.regex.file 属性覆盖(2) 。也就是说,如果你在操作过程中调用了类CrawlTool,那么类RegexURLFilter 将会采用crawl-tool.xml 中指定的文件,否则就用缺省的文件。

当然如果nutch-site.xml 中也定义了urlfilter.regex.file 属性的话,那么 NutchConf.get().get(“urlfilter.regex.file”) 返回的值就以nutch-site.xml 所指定的值为准。(关于nutch 的resource chain)

注:(1)NutchConf 初始化时会装载nutch-default.xml 和nutch-site.xml


public class NutchConf {
......
   public NutchConf() {
     resourceNames.add("nutch-default.xml");
     resourceNames.add("nutch-site.xml");
   }
......
}


(2)装载类CrawlTool 时,crawl-tool.xml 会被插入到resource chain 中


public class CrawlTool {
......
   static {
     NutchConf.get().addConfResource("crawl-tool.xml");
   }
......
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值