在Eclipse中配置Heritrix


一、新建项目并将Heritrix源码导入

1、下载heritrix-1.14.4-src.zip和heritrix-1.14.4.zip两个压缩包,并解压,以后分别简称SRC包和ZIP包;
2、在Eclipse下新建Java项目,取名Heritrix.1.14.4;
3、复制SRC包下面src/java文件夹下org和st两个文件夹到项目中的src包下;
4、复制SRC包下src下conf文件夹到项目根目录;
5、复制SRC包下lib文件夹到项目根目录;
6、复制ZIP包下webapps文件夹到项目根目录;



7、修改项目下conf下heritrix.properties文件

heritrix.version = <span style="color:#ff0000;">1.14.4</span>

# Location of the heritrix jobs directory.
heritrix.jobsdir = jobs

# Default commandline startup values.
# Below values are used if unspecified on the command line.
heritrix.cmdline.admin = <span style="color:#ff0000;">admin:admin</span>
heritrix.cmdline.port = <span style="color:#ff0000;">8080</span>
主要修改 version, 用户名、密码及端口号

8、在项目上右键选择构建路径->配置构建路径->库选项卡->添加Jar,将lib目录下的所有.jar文件选中,点击完成!
9、在项目/src/org.archive.crawler包下Heritrix.java上点击右键选Run as->Run Configurations->Classpath->User Entries->Advanced->Add Folder->选择项目下conf文件夹,最后点击Run


然后,就可以从http://127.0.0.1:8080/中登录系统。



二、配置爬虫任务并开始下载

1、登录系统 admin/admin


2、点击Jobs--->create new job---->with defaults


每次新建一个job,都等于创建一个新的order.xml。在Heritrix中,每个任务对应一个order.xml,用于描述任务的属性。它用于指定Job的Processor类、Frontier类、Fetcher类、抓取时的最大线程数、最长超时等属性。



3、输入基本信息,注意seeds中最后必须有一个"/"



4、选择下边的"Modules",进入Module配置页(Heritrix的扩展功能都是通过模块概念实现的,可以实现自己的模块完成自己  想要的功能)。其中第一项 "Select Crawl Scope" 使用默认的"org.archive.crawler.deciderules.DecidingScope"     。倒数第三项 "Select Writers " 删除默认的 "org.archive.crawler.writer.ARCWriterProcessor" ,后添加  "org.archive.crawler.writer.MirrorWriterProcessor",这样执行任务的时候抓取到的页面会以镜像的方式放在本地的 目录结构中,而不是生成ARC存档文件。



 
5、选择"Modules"右边的"Submodules",在第一项内容中 "crawl-order ->scope->decide-rules->rules" 删除掉其中的 "acceptIfTranscluded" (org.archive.crawler.deciderules.TransclusionDecideRule) 的这一项抓取作用域的 规则。否则当Http请求返回301或者302时Heritrix会去抓取其他域下的网页。 
 
6、在WUI的第二行导航栏中选择"Settings"进入Job的配置页面,其中主要修改两项:http-headers 下的user-agent 和from,他们的"PROJECT_URL_HERE" 和 "CONTACT_EMAIL_ADDRESS_HERE" 替换为自己的内容 ("PROJECT_URL_HERE" 要以 "http://" 开头)
 
7、在WUI的第二行导航栏中选择最右边的"Submit job"
 
8、在WUI的第一行导航栏中选择第一项的"Console",点击"Start",抓取任务正式开始,时间长短有网络状况和所抓取网站的 深度有关。点击"refresh"可以监控下载情况



还可点击logs等观察日志。

9、默认情况下,文件下载至"项目位置\jobs"。


三、一些说明

1、创建项目后,Heritrix中报错:sun.net.www.protocol.file.FileURLConnection,原因为sun包是受保护的包,默认只有sun公司的软件才能使用。Eclipse会报错,把对保护使用waring就可以了。

步骤如下:Windows -> Preferences -> Java -> Compiler -> Errors/Warnings-> Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning



2、在进入module配置页,若发现所有的配置可以删除,移动,但是不可以添加和修改,没有可选的下拉框。原因为配置文件找不到,应该在classpath标签页添加配置文件的路径。

即第一部分的第9步。

3、问题: thread-10 org.archive.util.ArchiveUtils.<clinit>() TLD list unavailable
java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at org.archive.util.ArchiveUtils.<clinit>(ArchiveUtils.java:759)
解决:将heritrix-1.14.4-src.zip解压中src/resources/org/archive/util中tlds-alpha-by-domain.txt文件复制到工程中org.archive.util包下。


四、Modules中的一些配置项

在Modules界面中,共有8个选项需要配置,包括以下

1、Crawl Scope

用于配置抓取范围。选项请见下图。

根据名称可以直观的知道抓取范围,默认是BroadScope,即不限制范围。

从下拉框中选择某一项后,点击chang按键,则下拉框上面的解释会相应的发生变化,描述当前选项的特征。



2、URI Frontier

用于确定待抓取的url的顺序,亦即相应的算法。默认项为BdbFrontier。


3、Pre ProcessorsProcessors that should run before any fetching

在抓取前,处理器对一些先决条件做的判断。比如判断robot.txt等信息,它是整个处理器链的入口。


4、FetchersProcessors that fetch documents using various protocols

指定解释、提取哪些类型的文件


5、ExtractorsProcessors that extracts links from URIs

用于提取当前获取到文件的信息。


6、Writers:Processors that write documents to archive files

选择保存的方式,常用的有2种:

org.archive.crawler.writer.MirrorWriterProcessor:保存镜像,即将文件直接下载下来。

org.archive.crawler.writer.ARCWriterProcessor:以归档的格式下载下来,此时文件不可直接查看。此项为default模块的默认选项。


7、Post Processors Processors that do cleanup and feed the Frontier with new URIs

抓取后的收尾工作。


8、Statistics Tracking

用于一些统计信息。







在Eclipse中配置Heritrix,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。