`
阅读更多
通过第一篇的Eclipse配置成功Heritrix之后,便可以通过运行 org.archive.crawler.Heritrix.java来启动工程以便进行抓取内容。不过最常用的方法是通过WebUI来进行一系列的配置。


1. 运行Heritrix并通过浏览器访问http://localhost:8080来进行登录(admin/admin)。登陆界面如下:



登录后便打开了WebUI的主界面(默认是console)如下:



这说明配置并运行成功,可以进行下面的抓取工作啦。

2. 创建一个新的抓取任务。
(1) 单击WebUI菜单栏上的“Jobs”标签,就可以进入任务创建页面。如下图。



Based on existing job -- 以一个已经有的抓取任务为模板,创建所有抓取属性和抓取起始URL的列表。
Based on a recovery -- 在以前的某个任务中,可能设置过一些状态点,新的任务将从这个设置的状态点开始。
Based on a profile -- 专门为不同的任务设置了一些模板,新建的任务将按照模板来生成。
With defaults -- 这个最简单,表示按默认的配置来生成一个任务。

在Heritrix中,一个任务对应一个描述文 件。这个描述文件的默认的名称为order.xml。每次创建一个新任务时,都相当于生成了一个order.xml的文件。文件中详细记录了 Heritrix在运行时需要的所有信息。例如,它包括该用户所选择的Processor类、Frontier类、Fetcher类、抓取时线程的最大数 量、连接超时的最大等待时间等信息。上面所说的4种创建抓取任务的方式,其实都是在生成一个order.xml文件。其中,第4种With defaults,则是直接拷贝默认的order.xml文件。在所创建的Eclipse工程或是命令行启动的Heritrix下载包中,该默认的 order.xml文件均是放于profiles\default目录下的。


这里选择 With default来创建一个默认的任务。
(2) 在Name、description和seed里填写相应的内容。如图:(注:可同时输入多个seed,每个占用一行)


(3) 接着是要对modules进行一些配置。
需要配置的内容共有8项,Crawl Scope、URI Frontier和Writers 的配置比较重要,其他的按照默认就可以,不影响建立一个简单的job。如下图。








下面一一对其进行解释:
CrawlScope: 用于配置当前应该在什么范围内抓取网页链接。比如,如果选择BroadScope,则表示当前抓取的范围不受限制,但如果选择了HostScope,则表示抓取的范围在当前的Host内。

Frontier: 则是一个URL的处理器,它将决定下一个被处理的URL是什么。同时,它还会将经由处理器链所解析出来的URL加入到等待处理的队列中去。在例子中,使用BdbFrontier类来做为处理器,全权掌管URL的分配。

PreProcessor:这个队列中,所有的处理器都是用来对抓取时的一些先决条件做判断的。比如判断robot.txt的信息等,它是整个处理器链的入口。

Fetcher:从名称上看,它用于解析网络传输协议,比如解析DNS、HTTP或FTP等。在演示中,主要使用FetchDNS和FetchHTTP两个类。

Extractor:它的名字就很好的揭示了它的作用。它主要用是于解析当前获取到的服务器返回内容,这些内容通常是以字符串形式缓存的。在这个队列中,包括了一系列的工具,如解析HTML、 CSS等。在解析完毕,取出页面中的URL后,将它们放入队列中,等待下次继续抓取。在演示中,使用两种Extractor,即 ExtractorHTTP和ExtractorHTML。

Writer:主要是用于将所抓取到的信 息写入磁盘。通常写入磁盘时有两种形式,一种是采用压缩的方式写入,在这里被称为Arc方式,另一种则采用镜象方式写入。当然处理起来,镜象方式要更为容 易一些,因此,在演示中命名用镜象Mirror方式。

PostProcessor:在整个抓取解析过程结束后,进行一些扫尾的工作,比如将前面Extractor解析出来的URL有条件的加入到待处理队列中去。

Statistics Tracking: 和WebUI整合在一起,用来创建处理过程中的静态内容日志。

值得一提的是,在处理器链的设置过程中,每一个队列中的处理器都是要分先后顺序的,信息的处理流程实际上是不可逆的,因此,在设置时,可以看见在队列的右侧总是有“Up”、“Down”和“Remove”这样的操作,以帮助能够正确的设置其顺序。
在设置完Hertrix所需的处理链后,仍然还不能够马上开始抓取任务,还需对默认的运行时参数做一些修改,以适应真正的需要。

(4) 进入Setting项设置运行时参数。
在属性设置页面上有非常多的输入域,Heritrix在抓取网页时,这些域是用来对的各个组件的值进行预设,由于页面上的内容非常多,使用者可能无法全部了解它们的作用。所以Heritrix提供了一个辅助功能,来在最大程度上让使用者了解每个参数的含义。可以看到,在每个属性的右侧都有一个小问号,当单击问号时,就会弹出一个Javascript的Alert提示框,上面介绍了当前属性的作用。例如,在上图中单击“max-bytes- download”属性,通过Alert的提示可以知道,它表示的是抓取器最大下载的字节数,当下载字节数超过这个属性上所设定的值时,抓取就会自动停止。另外,如果将这个值设为0,则表示没有限制。
事实上,当在第一次使用Heritrix时,所需要设置的参数并不多,以默认设置为主。以下就来介绍一些必须要在第一次使用时就要配置好的参数。

HTTP-Header
在HTTP-Header这个属性域下面,包括两个属性值“user-agent”和“from”。改成如下格式(只需要格式正确就好,不需要agent和from真实存在):



至此便可以单击“Submit”链接,提交这个抓取任务。
(5) 提交任务。
点击submit便得到了如下图。



其中可以看到Pending Jobs 和 Completed Jobs。 点击console回到控制界面,点击start便开始了在Pendign Jobs中的任务。如图:



(6) 运行抓取包任务。
以下截图是正在运行的抓取过程。


至此一个简单的任务便完成了。

3. Heritrix的镜象存储结构
通过Heritrix抓取的内容会保存到Eclipse工程根目录下的jobs文件夹下。不同的抓取任务的命名以抓取任务的名称来加以区分。
里面的内容根据URI中的“/”来分层次,即如果在URI中有“/”,则在本地mirror镜像下的内容会以对应的文件夹来存储到本地。
  • 大小: 11.4 KB
  • 大小: 57.2 KB
  • 大小: 74.5 KB
  • 大小: 64.2 KB
  • 大小: 30.1 KB
  • 大小: 23.5 KB
  • 大小: 17.4 KB
  • 大小: 22.2 KB
  • 大小: 102.2 KB
  • 大小: 52.2 KB
  • 大小: 90.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics