码迷,mamicode.com
首页 > 系统相关 > 详细

【Heritrix基础教程之1】在Eclipse中配置Heritrix

时间:2014-10-09 21:59:07      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   ar   java   


一、新建项目并将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文件夹到项目根文件夹;

bubuko.com,布布扣

bubuko.com,布布扣
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, username、password及端口号

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

bubuko.com,布布扣bubuko.com,布布扣

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

bubuko.com,布布扣


在Liunx上执行heritrix

(1)export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/jediael/Heritirx1.14.4/lib/*:/home/jediael/Heritirx1.14.4/bin/*:/home/jediael/Heritirx1.14.4/conf/*
(2)cp -r webapps/ bin/
(3)cd bin
 (4)java org.archive.crawler.Heritrix

注意此种方法仅仅能在本机上通过127.0.0.1来进行訪问,由于代码中写了:

        final String ROOTURI = "127.0.0.1:" + Integer.toString(port);
        String selfTestUrl = "http://" + ROOTURI + ‘/‘;

即仅仅用于本机測试。

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

1、登录系统 admin/admin

bubuko.com,布布扣

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

bubuko.com,布布扣

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


bubuko.com,布布扣

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

bubuko.com,布布扣

bubuko.com,布布扣

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://" 开头)
 bubuko.com,布布扣bubuko.com,布布扣
7、在WUI的第二行导航栏中选择最右边的"Submit job"
 
8、在WUI的第一行导航栏中选择第一项的"Console",点击"Start",抓取任务正式開始,时间长短有网络状况和所抓取站点的 深度有关。点击"refresh"能够监控下载情况

bubuko.com,布布扣

bubuko.com,布布扣

还可点击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

bubuko.com,布布扣bubuko.com,布布扣


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文件拷贝到project中org.archive.util包下。


四、Modules中的一些配置项

在Modules界面中,共同拥有8个选项须要配置,包含下面

1、Crawl Scope

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

依据名称能够直观的知道抓取范围,默认是BroadScope,即不限制范围。

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

bubuko.com,布布扣

bubuko.com,布布扣bubuko.com,布布扣

2、URI Frontier

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

bubuko.com,布布扣

3、Pre ProcessorsProcessors that should run before any fetching

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

bubuko.com,布布扣

4、FetchersProcessors that fetch documents using various protocols

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

bubuko.com,布布扣

5、ExtractorsProcessors that extracts links from URIs

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

bubuko.com,布布扣

6、Writers:Processors that write documents to archive files

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

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

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

bubuko.com,布布扣

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

抓取后的收尾工作。

bubuko.com,布布扣

8、Statistics Tracking

用于一些统计信息。

bubuko.com,布布扣


五、Setting中的一些配置项

bubuko.com,布布扣

改动下载文件的路径



【Heritrix基础教程之1】在Eclipse中配置Heritrix

标签:style   blog   http   color   io   os   使用   ar   java   

原文地址:http://www.cnblogs.com/lcchuguo/p/4014317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!