Heritrix 在 Eclipse 中的配置

来源:互联网 发布:网络综合布线试题 编辑:程序博客网 时间:2024/04/24 22:50

从网上找了两篇博客,都介绍的很详细。

一篇博客http://blog.chinaunix.net/uid-9622484-id-3057495.html,主要讲解了详细的创建过程。

一篇博客http://www.cnblogs.com/likai198981/archive/2013/01/11/2856902.html讲解了可能配置中遇到的各种问题。

都很赞!


1, 首先在 Eclipse 中新建 Java 工程 MyHeritrix。然后利用下载的源代码包根据以下步骤来配置这个工程。

2,导入类库

Heritrix 所用到的工具类库都在 heritrix-1.14.4-src\lib 目录下,需要将其导入 MyHeritrix 工程。

1)将 heritrix-1.14.4-src 下的 lib 文件夹拷贝到 MyHeritrix 项目根目录;

2)在 MyHeritrix 工程上右键单击选择“Build PathConfigure Build Path …”,然后选择 Library 选项卡,单击“Add JARs …”,如图 1 所示。


图 1. 导入类库 - 导入前
图 1. 导入类库 - 导入前 

3)在弹出的“JAR Selection”对话框中选择 MyHeritrix 工程 lib 文件夹下所有的 jar 文件,然后点击 OK 按钮。如图 2 所示。


图 2. 选择类库
图 2. 选择类库 

设置完成后如图 3 所示:


图 3. 导入类库 - 导入后
图 3. 导入类库 - 导入后



3,拷贝源代码

1)将 heritrix-1.14.4-src\src\java 下的 com、org 和 st 三个文件夹拷贝进 MyHeritrix 工程的 src 下。这三个文件夹包含了运行 Heritrix 所必须的核心源代码;

2)将 heritrix-1.14.4-src\src\resources\org\archive\util 下的文件 tlds-alpha-by-domain.txt 拷贝到 MyHeritrix\src\org\archive\util 中。该文件是一个顶级域名列表,在 Heritrix 启动时会被读取;

3)将 heritrix-1.14.4-src\src 下 conf 文件夹拷贝至 Heritrix 工程根目录。它包含了 Heritrix 运行所需的配置文件;

4)将 heritrix-1.14.4-src\src 中的 webapps 文件夹拷贝至 Heritrix 工程根目录。该文件夹是用来提供 servlet 引擎的,包含了 Heritrix 的 web UI 文件。需要注意的是它不包含帮助文档,如果想使用帮助,可以将 heritrix-1.14.4.zip\docs 中的 articles 文件夹拷贝到 MyHeritrix\webapps\admin\docs(需新建 docs 文件夹)下。或直接用 heritrix-1.14.4.zip 的 webapps 文件夹替换 heritrix-1.14.4-src\src 中的 webapps 文件夹,缺点是这个是打包好的 .war 文件,无法修改源代码。

拷贝完毕后的 MyHeritrix 工程目录层次如图 4 所示。这里运行 Heritrix 所需的源代码等已经准备完备,下面需要修改配置文件并添加运行参数。


图 4. MyHeritrix 工程的目录层次
图 4. MyHeritrix 工程的目录层次


4,修改配置文件

conf 文件夹是用来提供配置文件的,里面包含了一个很重要的文件:heritrix.properties。heritrix.properties 中配置了大量与 Heritrix 运行息息相关的参数,这些参数的配置决定了 Heritrix 运行时的一些默认工具类、Web UI 的启动参数,以及 Heritrix 的日志格式等。当第一次运行 Heritrix 时,只需要修改该文件,为其加入 Web UI 的用户名和密码。如图 5 所示,设置 heritrix.cmdline.admin = admin:admin,“admin:admin”分别为用户名和密码。然后设置版本参数为 1.14.4。


图 5. 设置登陆用户名和密码
图 5. 设置登陆用户名和密码


5,配置运行文件

在 MyHeritrix 工程上右键单击选择“Run AsRun Configurations”,确保 Main 选项卡中的 Project 和 Main class 选项内容正确,如图 6 所示。其中的 Name 参数可以设置为任何方便识别的名字。


图 6. 配置运行文件—设置工程和类
图 6. 配置运行文件—设置工程和类 

然后在 Classpath 页选择 UserEntries 选项,此时右边的 Advanced 按钮处于激活状态,点击它,在弹出的对话框中选择“Add Folders”,然后选择 MyHeritrix 工程下的 conf 文件夹。如图 7 所示。


图 7. 添加配置文件
图 7. 添加配置文件 

至此我们的 MyHeritrix 工程已经可以运行起来了。



6,

找到 org.archive.crawler 包中的 Heritrix.java 文件,它是 Heritrix 爬虫启动的入口,右键单击选择“Run AsJava Application”,如果配置正确,会在控制台输出如图 8 所示的启动信息。


图 8. 运行成功时控制台输出
图 8. 运行成功时控制台输出 

在浏览器中输入 http://localhost:8080,会打开如图 9 所示的 Web UI 登录界面。

可能遇到的异常:

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
原创粉丝点击