Heim  >  Artikel  >  Web-Frontend  >  Heritrix只爬取html、htm等特定页面_html/css_WEB-ITnose

Heritrix只爬取html、htm等特定页面_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:44:26956Durchsuche

       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>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn