从控制台配置Heritrix,使之能运行之后,完成获取信息的基本功能是没问题的。
但是Heritrix默认的功能,比较类似于离线浏览器,把所有的信息都抓下来了。尽管Heritrix提供有可定制的处理链,但可能不够灵活,有时需要自己定制Crawler类调试运行。于是开始找在Eclipse中配置的方法。网上搜到的配置方法有些很繁琐,有的不完整,看着头很大。所以对比了下他们的描述,想了想照着做总是出现错误的原因,找了种比较完整可行的方法。
1。先下载heritrix-1.12.1-src.zip和heritrix-1.12.1.zip。方法在2008/01/26的另一篇文章中写过了,不再赘述。我直接下载到桌面了。(系统盘是G盘……)分别把他们解压到当前文件夹/heritrix-1.12.1/和/heritrix-1.12.1-src/。
2。解压heritrix-1.12.1.jar到/heritrix-1.12.1/heritrix-1.12.1。解压得到的文件夹结构如图:
3。把以上目录的所有文件拷贝到heritrix-1.12.1-src/heritrix-1.12.1/src/java文件夹下。目的是将java文件夹配置成一个完整的工程目录。
4。把/heritrix-1.12.1-src/heritrix-1.12.1/lib文件夹 拷贝到/heritrix-1.12.1-src/heritrix-1.12.1/src/java文件夹下。把lib下的jar包放入工程内部是为了便于管理。
5。把heritrix-1.12.1-src/heritrix-1.12.1/src/webapps文件夹拷贝到/heritrix-1.12.1-src/heritrix-1.12.1/src/java文件夹下。此时工程目录基本上完整了。得到的效果如图:
6。在Eclipse中新建一个Java Project,选择从现有源代码建立,源代码的路径指向/heritrix-1.12.1-src/heritrix-1.12.1/src/java。命名为Heritrix,点击ok。
7。这时在package explorer中应该会出现大量的编译错误标记。原因是没有把对应的jar包导入项目。在Java Build Path的Library选项卡中,把项目lib文件夹下的jar包全部加入Build Path。
8。在window->Preference->Java->Compiler中,将Compiler compliance level 设为5.0,也就是JDK1.5兼容的语法。目的是使Heritrix编译通过。否则Eclipse可能不认assert这个关键字。
9。用鼠标选中/Heritrix/org/archive/crawler/Heritrix.java,右键选择Run As Java Application,Console应该是没有输出的。原因是没有提供运行的参数(用户名/口令)。 一种方法是,修改项目根文件夹下的heritrix.properties文件,设置“heritrix.cmdline.admin = admin:admin”。正常运行时的输出如下:
Heritrix version: 1.12.1
17:26:43.621 EVENT Starting Jetty/4.2.23
17:26:43.801 EVENT Started WebApplicationContext[/,Heritrix Console]
17:26:43.871 EVENT Started SocketListener on 127.0.0.1:8080
17:26:43.871 EVENT Started org.mortbay.jetty.Server@a01335
11。另外一种设定用户名和密码的方式是,在Run Dialog中的Arguments参数选项卡中,输入-admin=admin:admin,单击Apply,再单击Run即可运行。
10。运行Heritrix,在浏览器中输入http://localhost:8080/,用户名/密码为“admin/admin”,可以登陆进去的话应该就可以正常使用了。至此配置完毕。至于怎样建立抓取任务,可参看2008/01/26那篇文章,描述的很详细了。
晚上睡前忽然想起来点东西,就开机重新配它。配置用了不到10分钟,总结出来用了近一个小时……晕。写东西太慢了。