Heritrix在eclipse中的配置过程(1.14.4版本)

来源:互联网 发布:邮箱查域名 编辑:程序博客网 时间:2024/04/26 12:16

Eclipse中配置使用Heritrix-1.14.4

在网上找了不少方法,但配置之后均可以登录,但配置抓取任务的moudles的时候网页不正常显示(百度了以下应该是某些文件没有执行,具体的原理等了解以后再补充),下面这种方法显示正常:


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中(工程右键build path);


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去掉。


 
0 0