> 웹 프론트엔드 > HTML 튜토리얼 > Heritrix只爬取html、htm等特定页面_html/css_WEB-ITnose

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

WBOY
풀어 주다: 2016-06-24 11:44:26
원래의
982명이 탐색했습니다.

       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>
로그인 후 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿