驯服爬虫 Heritrix
坛主前些日子罗列一下所有的开源爬虫! 此帖 : http://www.opensourceforce.org/thread-349-1-1.html
我就来具体介绍一下怎么使用吧! Heritrix 它不单单是一个爬虫,他还它的 Web 控制端,是通过启动 Web 来控制爬虫的行为的
怎么使用 Web 启动来控制就看这里吧 ! 我不多介绍了 http://www.opensourceforce.org/myhome/space.php?uid=481&do=blog&id=72
现在传统类型的 Heritrix 的最新版本是 heritrix-1.14.0 ,而 heritrix-2.0.0 则是开辟了新的路径,老版本(2.0.0之前的版本)主要是通过 Web
控制,而 2.0.0则在支持 Web 控制的前提下,使用了 jmx 远程控制,同时更新了 heritrix 的配置文件的配置方式。
上面介绍了 heritrix 新版本的信特性,但我想大多数跟我一样,使用 heritrix 之希望使用 Heritrix 的爬虫部分,下面我就来介绍怎么使用通
过程序启动 heritrix , 通过自己的程序来控制 Heritrix 。
有于最近时间比较紧,下学期就大四了,要为自己的工作忙碌了,所以没有太多的时间来研究开源项目了。所以最新的 Heritrix 2.0.0
也只是简单的看了一下,但 Heritrix 的爬虫核心代码并没有改变,只是添加了 jmx 远程控制的功能。
不过我这边还是以 Heritrix 1.14.0 版本为例来使用,这个我更加熟悉一点,呵呵!
首先是去官网下载 Heritrix 1.14.0 的 二进制 版本,解压后取出 heritrix 1.14.0.jar 这个是主要的包,还会以来一些其它的包,根据我
多次的测试,如果单单是解析 html 网页,只需要依赖另外的这 10 个包。
heritrix 1.14.0.jar
httpclient.jar
commons-collections.jar
je.jar // oracle 的 java 版 嵌入式数据库
dnsjava.jar
mg4j.jar
fastutil.jar
commons-codec.jar
libidn.jar
commons-logging.jar
commons-lang.jar
需要的注意的是在的导入包的时候一定要按照我上面给出的顺序一个一个导入 ,熟悉 Heritrix 的朋友清楚
heritrix 有一个非常重要的配置文件, 那就是 order.xml 文件。 对于这个文件我给一个模板给大家吧! 这个模板文件是具备的最简单
运行要求,也就是当你用这份配置文件的话会将整个目标网站的镜像搬到本地的 Heririx 工作目录。
这份模板看这个联接看把: http://www.opensourceforce.org/myhome/space.php?uid=481&do=blog&id=73
再上面的一切准备好了就可以开始编程了。
XMLSettingsHandler handler = new XMLSettingsHandler(new File(orderFilePath));
handler.initialize();
CrawlController controller = new CrawlController();
controller.initialize(handler);
CrawlContrller 就之爬虫的控制器了,在这个控制器中定义了控制爬虫的所有行为,因此通过上面的代码片段就完成了 Herireix 的初始化
并获得爬虫的控制对象,现在我们就可以同过这个 controller 对象来驯服 heritrix 了。
注意上面的 orderFilePath 就是 order.xml 的文件路径了。
通过调用 controller.requestCrawlStart(); 启动爬虫
调用 controller.requestCrawlPause(); 暂停
调用 controller.requestCrawlResume(); 恢复
调用 controller.requestCrawlStop(); 停止爬虫
具体的使用看 API 吧!
先介绍到这里吧! 如果有说得不明白的地方大家回帖提吧! 我尽量把 Heritrix 的使用说明白!
下面这些图是 heritrix 爬虫部分的核心设计图 ,如果不明白 heritrix 流程的可以看一下下面的图。