首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

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

2012-08-11 
nutch 1.0 读源码,过滤掉不正确的URL实现方法nutch 1.0 读源码,过滤掉不正确的URL实现方法:对URL不规则或

nutch 1.0 读源码,过滤掉不正确的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);
??? }
? }

?

更多交流:

垂直搜索QQ:群:55388905

?

最近自己的小项目:http://www.lsoba.com

热点排行