在配置好heritrix后,可以输入形如:http://localhost:8080的服务器IE地址,进入UI界面登陆。则可开始建立网页爬行抓取任务。
1.首先启动Heritrix后台监听程序,然后登录WebUI.
成功登录WebUI后,初始界面如图所示:
2. 选择上面一排导航菜单中的“Jobs”链接,开始建立一个抓取任务,如图所示:
3.创建一个Job(Create New Job)有四种选择方式:Based On Existing Job、Based On a recovery、Based On a profile、With Default。我们选择第三种方式,点击“Based On a profile”链接,如图所示:
4.继续点击 “default“链接,这时才真正开始配置一个新建的抓取任务了,如图所示:
其中,“Name of a new job”指定了一个Job的名称,可以任意选取(我选择的名称为Dev);Description是关于这个Job的描述,用来为以后抓取提供参考(Dev website);Seeds是指要抓取的网站的种子页面,以该Seeds为起始抓取点,可以填写一个URL,也可以填写多个,填写多个的话,要保证每个URL在一行,例如以填写下面三个种子页面为例:
http://crawler.archive.org
http://portals.apache.org
http://docs.huihoo.com
如图所示:
5.接着,点击文本域下方的“Modules”按钮,对抓取任务的处理链进行配置,打开页面如图所示:
在该版本的Heritrix-1.14.4,新建一个抓取任务的时候,设置处理链页面默认给定了一种配置,可以根据具体需要进行详细配置(或者在词基础上进行修改)。
6.配置抓取任务的处理链,可以配置(添加、删除)如下8项:
Select Crawl Scope
Select URI Frontier
Select Pre Processors
Select Fetchers
Select Extractors
Select Writers
Select Post Processors
Select Statistics Tracking
而且,只需要从对应项的下拉列表单中选择向对应的项即可,这里,选择每项可以非常直观地从列表中的“包名+类名”选择匹配的选项,以选择一个Writer(用于配置抓取到的内容以怎样的方式写入本地磁盘)为例如图所示:
选中后,点击后面的“Add”按钮,即可设置,如图所示:
可以通过设置选项后面的Down、Up、Remove等链接进行操作,Info链接是查看具体信息的。各个选项是有顺序的,因为他们是一个抓取链。设置完毕后,点击上方或者下方导航菜单
中的“Submitmodules”链接提交处理链配置,然后可以看到一个个“回”字形的蓝色方框不断嵌套,显示了刚才配置的详细信息,如图所示:
在此,仍然可以修改对处理链的配置。接着,要对运行时的参数进行配置,点击
中的“Settings”链接,进入配置运行时参数页面如图所示:
可以拖动滚动条,对很多运行时参数进行配置,具体配置可以参考相关文档手册,这里可以设置一下如下所示的http-headers选项,默认配置如下:
可以点击蓝色的“?”查看该项的提示信息。要根据自己的具体情况进行配置:
user-agent主要是指运行Heritrix的用户的配置,即使用者的机器配置。首先是浏览器的选择,比如IE/7.0;其中 @VERSION@是指使用Heritrix的版本号,这里应该是1.12.1;最后面的PROJECT_URL_HERE是指要搜索的地址,比如http://192.168.151.201。
from是指一个Email联系方式,可以输入一个Email地址,例如(随意即可,符合e_mail形式就好)。
其它可以使用默认设置(如果要详细配置可以参考相关文档手册)。这时可以选择导航菜单
中的“Submit job”链接,提交一个抓取任务,页面跳转到如下所示页面:
可以看到,上方的红色粗体的“Job created”提示信息,这时表示一个抓取任务已经创建成功(还没有启动给任务)。
7.接下来,就要启动这个抓取任务。点击导航菜单
中的“Console”链接,回到WebUI控制台,如图所示:
该页面显示当前抓取器的状态为Crawler Status: HOLDING JOBS,挂起状态。还显示了Jobs、Memory、Alert的信息。
启动一个抓取任务。点击“Start”链接,即可启动,开始执行抓取任务。页面如图所示:
点击“Refresh”链接可以看到实时抓取的进度信息。注意,这个百分数的进度是不准的的,开始启动的时候需要预加载,是一个近似的百分比。
由于大部分使用默认的处理链的配置,所以抓取的范围比较广泛,比如HTML文件、SWF文件、CSS文件等等,所以对指定的一个种子页面,抓取的数据量很大,速度也是很慢的。
8.另外,选择中页面也有很大的关系,比如我们选择的docs.huihoo.com种子页面,这是一个很宽泛的种子页面,抓取后,该种子页面的子页面有很多很多。
过一段时间后,点击“Refresh”链接可以看到一个时刻的抓取进度信息,如图所示:
可见,已经抓取到了很多页面,并下载到本地了。
当启动一个抓取任务时,可以在工程的目录xx\workspace\Heritrix-xx下面看到生成了一个jobs文件夹,打开该文件夹可以看到一个新的文件夹:Dev-20080404103345484,就是刚才新建的那个抓取任务的名称。打开该目录,可以看到一些配置文件夹,如图所示:
打开mirror目录,可以看到抓取到URL目录,如图所示:
其中目录docs.huihoo.com下可以看到抓取了很多内容,如图所示:
9.如果启动一个抓取任务的过程出现异常,则可以在Eclipse控制台上看到异常信息。比如设置user-agent的时候忘记了这个设置,则启动抓取任务的时候则出现异常:
04/04/2008 10:30:52 +0000 严重 org.archive.crawler.framework.CrawlController initialize On crawl: Dev You must set the User-Agent and From HTTP header values to acceptable strings.
User-Agent: [software-name](+[info-url])[misc]
From: [email-address]
org.archive.crawler.framework.exceptions.FatalConfigurationException: unacceptable user-agent or from (Reedit your order file).
at org.archive.crawler.datamodel.CrawlOrder.checkUserAgentAndFrom(CrawlOrder.java:436)
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:335)
at org.archive.crawler.admin.CrawlJob.setupForCrawlStart(CrawlJob.java:846)
at org.archive.crawler.admin.CrawlJobHandler.startNextJobInternal(CrawlJobHandler.java:1142)
at org.archive.crawler.admin.CrawlJobHandler$3.run(CrawlJobHandler.java:1125)
at java.lang.Thread.run(Thread.java:595)
org.archive.crawler.framework.exceptions.InitializationException: On crawl: Dev You must set the User-Agent and From HTTP header values to acceptable strings.
User-Agent: [software-name](+[info-url])[misc]
From: [email-address]
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:383)
at org.archive.crawler.admin.CrawlJob.setupForCrawlStart(CrawlJob.java:846)
at org.archive.crawler.admin.CrawlJobHandler.startNextJobInternal(CrawlJobHandler.java:1142)
at org.archive.crawler.admin.CrawlJobHandler$3.run(CrawlJobHandler.java:1125)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.archive.crawler.framework.exceptions.FatalConfigurationException: unacceptable user-agent or from (Reedit your order file).
at org.archive.crawler.datamodel.CrawlOrder.checkUserAgentAndFrom(CrawlOrder.java:436)
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:335)
... 4 more
而且,在WebUI控制台上也可以看到提示信息,例如Alerts:1(1 new)表示有一个异常或者错误,即“Alerts”链接就可以查看异常信息。
正常启动Alerts信息为Alerts:no alert。
出现异常后,可以重新设置抓取任务。
这就是一个简单的使用Heritrix新建抓取任务的例子。