Heritrix安装与运行

一、Heritrix直接安装

1、下载 heritrix-1.14.4.zip、heritrix-1.14.4-src.zip,将得到的heritrix-1.14.4.zip压缩包直接解压缩到某一目录。如:F:\Heritrix

2、然后,将 F:\Heritrix 目录中的heritrix-1.14.4.jar文件解压缩,把 profiles\default 下的两个文件order.xml和seeds.txt复制到 F:\Heritrix\conf 目录下。

3、以文本编辑方式打开 F:\Heritrix\conf中的heritrix.properties文件进行简单的配置。

# Version is filled in by themaven.xml pregoal. It copies here the project
# currentVersion property.
heritrix.version = 1.14.4
 
# Location of the heritrixjobs directory.
heritrix.jobsdir = jobs
 
# Default commandlinestartup values.
# Below values are used ifunspecified on the command line.
heritrix.cmdline.admin = admin:admin
heritrix.cmdline.port = 8080
heritrix.cmdline.run = false
heritrix.cmdline.nowui = false
heritrix.cmdline.order=

4、复制 F:\Heritrix\conf 下的jmxremote.password.template文件到主目录F:\Heritrix下,并更名为jmxremote.password。编辑此文件,更改最后两行"monitorRole@PASSWORD@"、"controlRole       @PASSWORD@"中的"@PASSWORD@"为管理员密码。如:

monitorRole admin

controlRole admin 

修改完毕之后,保存该文件,并且需要将该文件的属性改为“只读”。

5、在F:\Heritrix\bin中新建文件run.cmd,打开输入heritrix --admin=admin:admin保存关闭。

6、有Java环境,配置正确,双击run.cmd就可以运行。如运行不成功90%原因是jmxremote.password权限的问题。

7、访问地址http://127.0.0.1:8080

二、在Eclipse中构建Heritrix 

1、下载 heritrix-1.14.4.zip、heritrix-1.14.4-src.zip。

2、在Eclipse中创建一个Heritrix 的工程,分别对 heritrix-1.14.4.zip、heritrix-1.14.4-src.zip进行解压。

3、将heritrix-1.14.4-src.zip解压中的src/java 中的 com、org、st三个文件夹复制到工程src下。

4、将heritrix-1.14.4-src.zip解压中src中conf文件夹复制到项目根目录。 

5、将heritrix-1.14.4-src.zip解压中lib文件夹复制到项目根目录。 

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.zip解压中webapps文件夹复制到项目根目录。 

8、配置文件进行修改,找到conf下heritrix.properties文件,同上。。

9、对工程进行jar包引入,将lib下面所有的jar包引入工程。 

在Heritrix 项目右键、Build Path、Configure Built Path...、Libraries、Add JARs...将lib目录下的所有.jar文件选中,点击完成。

这时,只有文件Heritrix.java中第120行有个叉叉,找不到sun.net.www.protocol.file.FileURLConnection,网上找了一下原因是sun包是受保护的包,默认只有sun公司的软件才能使用,Eclipse使用则会报错,只需把对保护使用waring就可以了。具体的做法是:Windows ->Preferences -> Java -> Compiler -> Errors/Warnings-> Deprecated andtrstricted API -> Forbidden reference (access rules): -> 改为warning

10、在工程中找到org.archive.crawler.Heritrix.java右键Run As、RunConfigurations、Classpath 、User Entries -- Advanced 、Add Folders 将conf文件夹添加进去。 

点击Run 开始运行 ,显示如下

09:17:41.250 EVENT  Starting Jetty/4.2.23
09:17:41.312 WARN!! Deleteexisting temp dir C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Jetty_127_0_0_1_8080__ forWebApplicationContext[/,jar:file:/C:/Documents%20and%20Settings/Administrator/workspace/heritrix/webapps/admin.war!/]
09:17:41.437 EVENT  Started WebApplicationContext[/,HeritrixConsole]
09:17:41.562 EVENT  Started SocketListener on 127.0.0.1:8080
09:17:41.562 EVENT  Started org.mortbay.jetty.Server@14d3343
Heritrix version: 1.14.4

11、访问地址http://127.0.0.1:8080

三、运行

(1)导航栏选择"Jobs",呈现的第一项是"Create New Job",选择第四小项"With defaults"。输入任务名称、任务描述、开始的URL。

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

(3) 选择"Modules"右边的"Submodules",在第一项内容中 "crawl-order ->scope->decide-rules->rules" 删除掉其中的"acceptIfTranscluded"(org.archive.crawler.deciderules.TransclusionDecideRule) 的这一项抓取作用域的规则。否则当Http请求返回301或者302时Heritrix会去抓取其他域下的网页。

(4) 在WUI的第二行导航栏中选择"Settings"进入Job的配置页面,其中主要修改两项:http-headers 下的user-agent 和from,他们的"PROJECT_URL_HERE"和 "CONTACT_EMAIL_ADDRESS_HERE"替换为自己的内容("PROJECT_URL_HERE"要以"http://" 开头,填本地IP;CONTACT_EMAIL_ADDRESS_HERE填合法e-mail)

(5) 在WUI的第二行导航栏中选择最右边的"Submitjob"。

(6) 在WUI的第一行导航栏中选择第一项的"Console",点击"Start",抓取任务正式开始,时间长短有网络状况和所抓取网站的深度有关。


你可能感兴趣的:(网络爬虫)