码迷,mamicode.com
首页 > Web开发 > 详细

Heritrix只爬取html、htm等特定页面

时间:2015-05-16 09:06:13      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:heritrix

       Heritrix有5条链,网上有说在Extractor链里做处理,该链是抽取链,可以负责解析html页面的内容,然后进一步筛选。但是我目前只想通过判断后缀名筛选出html、htm、shtml、xshtml等文件。因此这样在Extractor里做处理就有点牛刀小用的意思,因此我在PostProcessor链里做处理。详细介绍如下:

       FronitierScheduler是一种PostProcessor,它的作用是将Extractor中分析得到链接加入到Froniter中,以供下一步处理(写文件处理等等)。

       具体方法:

       1.找到org.archive.crawler.postprocessor包下的FrontierScheduler.java文件

       2.找到FrontierScheduler类的protected void schedule(CandidateURI caUri)方法

       3.我的改写如下:

<span style="font-size:14px;">     protected void schedule(CandidateURI caUri) {
        //将caUri转为String格式
        String url = caUri.toString();
        //打印出来查看一下
        System.out.println("------" + url);
        //剔除以特定后缀名结尾的URL
        if(url.endsWith(".jpeg")
    			||url.endsWith(".jpg")
    			||url.endsWith(".gif")
    			||url.endsWith(".css")
    			||url.endsWith(".doc")
    			||url.endsWith(".zip")
    			||url.endsWith(".png")
    			||url.endsWith(".js")
    			||url.endsWith(".pdf")
    			||url.endsWith(".xls")
    			||url.endsWith(".rar")
    			||url.endsWith(".exe")
    			||url.endsWith(".txt")){
    		return;
    	}
        
        //将未剔除的文件加入到下一步处理(写入到本地磁盘的处理等等)
        getController().getFrontier().schedule(caUri);
        
     }</span>


Heritrix只爬取html、htm等特定页面

标签:heritrix

原文地址:http://blog.csdn.net/yangding_/article/details/45765671

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!