Eclipse中配置使用Heritrix-1.14.4
1. 下载并解压heritrix-1.14.4-src.zip和heritrix-1.14.4.zip;
2. 在Eclipse中新建java project,项目名定为HeritrixProject;
3. 将解压后的heritrix-1.14.4-src.zip中src/java/下的com,org,st文件夹复制到工程的src目录下;
4. 将src/conf下的modules,profiles,selftest文件夹和heritrix.propertries,jndi.properities文件复制到工程的src目录下;
5. 解压heritrix-1.14.4-zip将webapps文件夹复制到工程根目录下;
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-src.zip解压中lib文件夹复制到项目根目录;
8. 打开工程中的heritrix.propertries文件修改以下配置项
a) heritrix.version= 1.14.4,配置heritrix版本号
b) heritrix.jobsdir= jobs,配置爬取的内容的放置文件夹
c) heritrix.cmdline.admin=username:password,配置webUI登录的用户名和密码
d) heritrix.cmdline.port= 8088,配置webUI的登录端口
9. 将lib文件夹下的后有jar包加入到工程的classpath中;
10. 在工程中找到org.archive.crawler下的Heritrix.java运行,成功运行结果如下:
10:19:37.985 EVENT Starting Jetty/4.2.23
10:19:38.139 EVENT Started WebApplicationContext[/,Heritrix Console]
10:19:38.227 EVENT Started SocketListener on 127.0.0.1:8088
10:19:38.227 EVENT Started org.mortbay.jetty.Server@5861
Heritrix version: 1.14.4
11.打开浏览器,输入地址:http://localhost:8088输入用户名和密码就可以登录到后台,如下图所示:
可能遇到的异常:
1>Thread-10 org.archive.util.ArchiveUtils.<clinit>() TLD list unavailable
solution:将解压后的heritrix-1.14.4-src.zip中src/resources/下中将文件org/archive/util/tlds-alpha-by-domain.txt复制到工程中的org/archive/util目录下即可;
2> Exception in thread "main" org.mortbay.util.MultiException[java.net.BindException: Address already in use: JVM_Bind]
solution: 由于端口被占用,可先关闭Eclipse停止相关进程,然后在开启即可;
3> 找不到类 sun.net.www.protocol.file.FileURLConnection:
solution: sun包是受保护的包,默认只有sun公司的软件才能使用。Eclipse会报错,把对保护使用warning就可以了。Windows -> Preferences -> Java -> Compiler -> Errors/Warnings-> Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning;
4> The method finalTasks() of type AdaptiveRevisitFrontier must override a superclass method:
Solution: 去掉该类中此方法上方的@Override即可;
5> Sometimes, 各个包及文件都没错,Heritrix仍会报错,尝试将工程目录下的爬取内容的放置文件夹jobs去掉。