在Eclipse中构建Heritrix
这里采用的是Heritrix 1.14.4(2010年5月10日的版本 目前来看是最新版本)
1.首先从http://sourceforge.net/projects/archive-crawler/ 中下载
heritrix-1.14.4.zip
heritrix-1.14.4-src.zip
2.在Eclipse 中创建一个java project的工程,分别对
heritrix-1.14.4.zip
heritrix-1.14.4-src.zip 进行解压。
3.将heritrix-1.14.4-src.zip解压中的src/java 中的 com、org、st三个文件夹复制到工程src下。
4.将heritrix-1.14.4-src.zip解压中src中conf文件夹复制到项目根目录。
5.将heritrix-1.14.4-src.zip解压中lib文件夹复制到项目根目录。
6.将heritrix-1.14.4-src.zip解压中src/resources/org/archive/util中tlds-alpha-by-domain.txt文件复制到工程中org.archive.util包下。
7.将heritrix-1.14.4.zip解压中webapps文件夹复制到项目根目录。
如果文件夹名称不是webapps 需要在Heritrix.java中进行相应的更改。
/**
* @throws IOException
* @return Returns the directory under which reside the WAR files
* we're to load into the servlet container.
*/
public static File getWarsdir()
throws IOException {
return getSubDir("webapps");
}
8.配置文件进行修改,找到conf下heritrix.properties文件
//设置用户密码
heritrix.cmdline.admin = admin:admin
//设置端口
heritrix.cmdline.port = 8080
9.对工程进行jar包引入,将lib下面所有的jar包引入工程。
10.在工程中找到org.archive.crawler.Heritrix.java右键选运行方式配置
选择Classpath
选择User Entries -- Advanced
选择Add Folders 将conf文件夹添加进去。
点击Run 开始运行
05:22:32.875 EVENT Starting Jetty/4.2.23
05:22:32.937 WARN!! Delete existing temp dir C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Jetty_127_0_0_1_8080__ for WebApplicationContext[/,jar:file:/D:/workspace/jcjcd/heritrixDemo/webapps/admin.war!/]
05:22:33.062 EVENT Started WebApplicationContext[/,Heritrix Console]
05:22:33.156 EVENT Started SocketListener on 127.0.0.1:8080
05:22:33.156 EVENT Started org.mortbay.jetty.Server@1f6f0bf
Heritrix version: @VERSION@
到目前我们已经完成Heritrix在Eclipse下的配置。
下面我们可以创建一个job进行测试。
1.在浏览器输入http://127.0.0.1:8080 输入配置文件中的用户名密码即可。
2.接下来我们创建一个job,选择导航菜单中的jobs,选择CreateNewJob With defaults。
3.分别填入名称,描述,和待抓取的url。
4.选择modules,这里我们将抓取结果创建一个镜像,默认进行了压缩,Select Writers中的 org.archive.crawler.writer.ARCWriterProcessor 删除并重新添加一个 org.archive.crawler.writer.MirrorWriterProcessor
5.选择页面下方的Setting进行设置,这里可设置的项很多,比如最大线程数,超时等等。
有两样必须进行设置
http-headers HTTP headers.
user-agent:Mozilla/5.0 (compatible; heritrix/@VERSION@ +PROJECT_URL_HERE)
from:CONTACT_EMAIL_ADDRESS_HERE
我这里只是简单的将@VERSION@ 换成heritrix版本号
PROJECT_URL_HERE 换成 http://本机ip
CONTACT_EMAIL_ADDRESS_HERE随便写了个email地址
以上配置完成之后选择 submitjob。
6.回到Console 点击start开始job的抓取。
抓取完成之后可以在工程下看到jobs文件夹,在文件夹中可以找到