heritrix在windows下安装和运行

heritrix是sourceforge下的一个开源爬行工具,这个工具只是在linux下测试过,没有进行过在windows下的测试。heritrix的文档中也没有在windows下的安装和测试的内容。
下面我就总结一下这段时间来在windows命令行下的两种可行的的安装运行方式。
正确安装java虚拟机是必须的,而且要是1.5以上的版本才行!

一,安装都一样
下载完整的heritrix开发包,解压到本地的一个目录下,比如E:/!之后配置系统环境变量"HERITRIX_HOME"到该解压目录。(对于下面的第一种方法,不配置这个环境变量一样可以)。

二,运行前的配置工作,下面就两种方法分别介绍!

方法一:在%HERITRIX_HOME%/目录下有一个conf目录,在conf下有个重要的heritrix.properties。在这个文件中配置了大量与Heritrix运行息息相关的参数,这些参数主要是配置了Heritrix运行时的一些默认工具类、WebUI的启动参数,以及Heritrix的日志格式等。当第一次运行Heritrix时,只需要修改该文件,为其加入WebUI的登录名和密码,和修改监听端口。
heritrix.cmdline.admin = admin:admin
heritrix.cmdline.port = 8080
其中,用户名和密码是以一个冒号进行分隔,使用者可以指定任何的字符串做为用户名密码,监听端口如果不修改的话,默认是8080。下面需要调用Heritrix的主类org.archive.crawler.Heritrix来启动heritrix。当然,在运行它的时候,需要为其加上lib目录下的所有jar包,例如(这是在一行上的):
java -Xmx512m-Dheritrix.home=e://heritrix -cp
"E://heritrix//lib//commons-codec-1.3.jar;E://heritrix//lib//commons-collections-3.1.jar;E://heritrix//lib//dnsjava-1.6.2.jar;E://heritrix//lib//poi-scratchpad-2.0-RC1-20031102.jar;E://heritrix//lib//commons-logging-1.0.4.jar;E://heritrix//lib//commons-httpclient-3.0.1.jar;E://heritrix//lib//commons-cli-1.0.jar;E://heritrix//lib//mg4j-1.0.1.jar;E://heritrix//lib//javaswf-CVS-SNAPSHOT-1.jar;E://heritrix//lib//bsh-2.0b4.jar;E://heritrix//lib//servlet-tomcat-4.1.30.jar;E://heritrix//lib//junit-3.8.1.jar;E://heritrix//lib//jasper-compiler-tomcat-4.1.30.jar;E://heritrix//lib//commons-lang-2.1.jar;E://heritrix//lib//itext-1.2.0.jar;E://heritrix//lib//poi-2.0-RC1-20031102.jar;E://heritrix//lib//jetty-4.2.23.jar;E://heritrix//lib//commons-net-1.4.1.jar;E://heritrix//lib//libidn-0.5.9.jar;E://heritrix//lib//ant-1.6.2.jar;E://heritrix//lib//fastutil-5.0.3-heritrix-subset-1.0.jar;E://heritrix//lib//je-3.0.12.jar;E://heritrix//lib//commons-pool-1.3.jar;E://heritrix//lib//jasper-runtime-tomcat-4.1.30.jar;E://heritrix//heritrix-1.10.1.jar" org.archive.crawler.Heritrix

当看到形如:
“11:16:46.796 EVENT  Starting Jetty/4.2.23
11:16:47.562 EVENT  Started WebApplicationContext[/,Heritrix Console]
11:16:47.765 EVENT  Started SocketListener on 127.0.0.1:8080
11:16:47.765 EVENT  Started org.mortbay.jetty.Server@179c285
Heritrix version: 1.10.0”
OK了!Heritrix的后台已经对服务器的8080端口进行了监听,只需要通过浏览器访问http://localhost:8080,就可以打开Heritrix的WebUI了。

方法二, 这种方法还有个条件,就是磁盘格式必须是NTFS,否则不行!
拷贝 %HERITRIX_HOME%/conf/jmxremote.password.template 到 %HERITRIX_HOME%/下,并且重命名为"jmxremote.password"。之后编辑该文件内容关于密码的部分:
monitorRole  @PASSWORD@         monitorRole  admin
controlRole  @PASSWORD@  ==>  controlRole  admin
修改完毕之后,保存该文件。并且需要将该文件的属性改为“只读”。然后有很重要的一步:在该文件jmxremote.password的属性窗口中查看“安全”标签,该标签下的第一项“组或用户名称”下要确认该文件的所有权应该只隶属于你当前的系统用户,而不应该是某一个用户组(例如Administrators),这应该是Heritrix安全机制的一个Bug。否则运行Heritrix的时候会报权限错误,需要你修改jmxremote.password文件的属性为“只读”,但是其实已经做了该项改动。
在命令行下定位到 %HERITRIX_HOME%/bin/下,运行heritrix --admin=admin:admin
当看到:
2007-06-06 星期三 18:59:43.98 Starting heritrix
Heritrix 1.10.0 is running.
Web console is at: http://127.0.0.1:8080
web console login and password: admin/admin
表示heritrix后台监控已经启动了!同方法一,也只需要通过浏览器访问http://localhost:8080,就可以打开Heritrix的WebUI了。

后面的事就在webUI下就创建job和开始爬行了!下面就以一个简单的例子稍加说明!
(1) WUI的上边的导航栏选择"Jobs",呈现的第一项是"Create New Job",选择第四小项"With defaults"。输入项的前两项Name和Description随意,Seeds是你准备从哪些URL开始爬行,当然一定要填哦!
(2) 选择下边的"Modules",进入Module配置页(Heritrix的扩展功能都是通过模块概念实现的,可以实现自己的模块完成自己想要的功能)。其中第一项 "Select Crawl Scope" 使用默认的 "org.archive.crawler.deciderules.DecidingScope"。倒数第三项 "Select Writers " 删除默认的 "org.archive.crawler.writer.ARCWriterProcessor" ,后添加   "org.archive.crawler.writer.MirrorWriterProcessor",这样执行任务的时候抓取到的页面会以镜像的方式放在本地的目录结构中,而不是生成ARC存档文件。
(3) 选择"Modules"右边的"Submodules",在第一项内容中 "crawl-order ->scope->decide-rules->rules" 删除掉其中的 "acceptIfTranscluded" (org.archive.crawler.deciderules.TransclusionDecideRule) 的这一项抓取作用域的规则。否则当Http请求返回301或者302时Heritrix会去抓取其他域下的网页。
(4) 在WUI的第二行导航栏中选择"Settings"进入Job的配置页面,其中主要修改两项:http-headers 下的user-agent 和 from,他们的"PROJECT_URL_HERE" 和 "CONTACT_EMAIL_ADDRESS_HERE" 替换为自己的内容("PROJECT_URL_HERE" 要以 "http://" 开头)
(5) 在WUI的第二行导航栏中选择最右边的"Submit job"
(6) 在WUI的第一行导航栏中选择第一项的"Console",点击"Start",抓取任务正式开始,时间长短有网络状况和所抓取网站的深度有关。

面版中出现了一条抓取状态栏,它清楚的显示了当前已经被抓取的链接数量,另外还有在队列中等待被抓取的链接数量,然后用一个百分比显示出来。但这个百分比是不准确的,因为这个是动态的,不断变化的!
最后,所抓取页面会存放在你的工作目录下的mirror文件夹内。

Heritrix提供的配置功能非常丰富,也是很复杂的,具体的可以参看用户手册,其中有详细说明!

 

你可能感兴趣的:(heritrix在windows下安装和运行)