当前位置: 代码迷 >> Web前端 >> heritrix学习小结[转载]http://www.iteye.com/topic/368067
  详细解决方案

heritrix学习小结[转载]http://www.iteye.com/topic/368067

热度:437   发布时间:2012-08-21 13:00:21.0
heritrix学习总结[转载]http://www.iteye.com/topic/368067

1 下载 和 解压
http://crawler.archive.org/下载解压到本地 E:\heritrix-1.14.3

2 配置环境变量
HERITRIX_HOME=E:\heritrix-1.14.3
path后追加 ;%HERITRIX_HOME%\bin

3 配置 heritrix

? 拷贝E:\heritrix-1.14.3\conf\jmxremote.password.template到E:\heritrix-1.14.3下
并从命名为jmxremote.password

? 修改E:\heritrix-1.14.3\conf下的heritrix.properties 文件
? 用UrltraEditor或其他的文本编辑工具打开,找到 heritrix.cmdline.admin =
? admin是空的 这是登陆heritrix UI的用户名和密码 格式为 username:password
? heritrix.cmdline.admin = admin:admin
?
? heritrix.cmdline.port = 8080 配置端口 为了不和tomcat的8080端口冲突我改为8888

? 用winrar 打开E:\heritrix-1.14.3下的heritrix-1.14.jar文件,将其目录中的profiles文件夹拷到

E:\heritrix-1.14.3\conf目录下即完成heritrix的配置

(用些网友说要将jmxremote.password文件的属性改为只读,我不知道为什么?,官方文档里也没说)

4 启动heritrix
? 开始 -》运行 -》cmd 打开cmd端口
? 输入heritrix --admin=admin:admin
? --admin heritrix的启动参数 必须的*
?
? 弹出一个Heritrix窗口?? 打印。。。。。。。。。。。。。Heritrix version: 1.14.3

? cmd窗口打印出
? 2009-04-15 星期三 10:42:03.04 Starting heritrix
? Heritrix 1.14.3 is running.
? Web console is at: http://127.0.0.1:8888
? Web console login and password: admin/admin
表示启动完成

5 抓取任务

? 用浏览器打开http://127.0.0.1:8888 输入用户名和密码?
? 选Jobs选项, 在Create New Job 下选择 With defaults 子项

? Create new crawl job based on default profile
?
? Name of new job 和Description 随便写
? Seeds 填写要抓取的网站 http://www.verycd.com/? (必须以/结尾)

单击Modules 按钮?

Select Modules and Add/Remove/Order Processors

从上而下,可以看到,需要配置的内容共有7项

1.CrawlScope
?? CrawlScope用于配置当前应该在什么范围内抓取网页链接。比如,如果选择BroadScope,则表示当前?

抓 取的范围不受限制,但如果选择了HostScope,则表示抓取的范围在当前的Host内。

选择 org.archive.crawler.scope.BroadScope 单击change按钮即可

2.URI Frontier
?? URI Frontier是一个URL的处理器,它将决定下一个被处理的URL是什么。同时,它还会将经由处理器?

链所解析出来的URL加入到等待处理的队列中去。在例子中,使用BdbFrontier类来做为处理器,全权??

掌管URL的分配

?? 选择 org.archive.crawler.frontier.BdbFrontier 单击change按钮即可

3.Pre Processors
?? 这个队列中,所有的处理器都是用来对抓取时的一些先决条件做判断的。比如判断robot.txt的信息等

,它是整个处理器链的入口

选择org.archive.crawler.prefetch.Preselector 和

org.archive.crawler.prefetch.PreconditionEnforcer 两项 (在下拉列表中选择好,点击Add添加即可



4.Fetcher:从名称上看,它用于解析网络传输协议,比如解析DNS、HTTP或FTP等
?
? 选择org.archive.crawler.fetcher.FetchDNS
org.archive.crawler.fetcher.FetchHTTP 两个单击Add添加


5.Extractors
? 它主要用是于解析当前获取到的服务器返回内容,这些内容通常是以字符串形式缓存的。在这个队列中

,包括了一系列的工具,如解析HTML、CSS等。在解析完毕,取出页面中的URL后,将它们放入队列中,等

待下次继续抓取

org.archive.crawler.extractor.ExtractorHTTP??
org.archive.crawler.extractor.ExtractorHTML
org.archive.crawler.extractor.ExtractorCSS
org.archive.crawler.extractor.ExtractorJS
org.archive.crawler.extractor.ExtractorSWF

6.Writers
Writers主要是用于将所抓取到的信息写入磁盘。通常写入磁盘时有两种形式,一种是采用压缩的方式写

入,在这里被称为Arc方式,另一种则采用镜象方式写入。当然处理起来,镜象方式要更为容易一些。
默认的是Arc方式 点击旁边的Remove 删除 在下拉框中选择

org.archive.crawler.writer.MirrorWriterProcessor 单击Add添加

7 Post Processors
? 在整个抓取解析过程结束后,进行一些扫尾的工作,比如将前面Extractor解析出来的URL有条件的加入

到待处理队列中去

org.archive.crawler.postprocessor.CrawlStateUpdater
org.archive.crawler.postprocessor.LinksScoper
org.archive.crawler.postprocessor.FrontierScheduler 单击Add添加

【在设置时,可以看见在队列的右侧总是有“Up”、“Down”和“Remove”这样的操作是因为在处理器链

的设置过程中,每一个队列中的处理器都是要分先后顺序的】

? 设置运行时的参数
?
? 在设置完处理链后,选择Jobs菜单的“Settings”项进入运行参数设置页面 . 进入运行参数设置页面

后,有很多可以设定的参数,对于需要了解详情的设置,请点击设置框左边的“?”号,可看到弹出的帮

助信息。这里只要更改 “HTTP-Header”项中的内容,更改其属性值user-agent和 from
其中user-agent中的 PROJECT_URL_HERE 对应自己的完整URL地址,(http://192.168.16.128)
from中设置自己的合法email地址 只需是格式正确的邮件地址就可以
@VERSION@是设置heritrix的版本 填上1.14.3
user-agent Mozilla/5.0 (compatible; heritrix/1.14.3 +http://192.168.16.128)

设置完成后单击“Submit job”链接 会回到Job是页面

显示了“Job created”,这表示刚才所设置的抓取任务已经被成功的建立。同时,在下面的“Pending

Jobs”一栏,可以清楚的看到刚刚被创建的Job,它的状态目前为“Pending”。

最后启动这个任务。回到“Console”界面上,可以看到刚刚创建的任务已经显示了出来,等待我们开始

它。
单击面版中的“Start”链接,就会将此时处于“Pending”状态的抓取任务激活,令其开始抓取
此时,面版中出现了一条抓取状态栏,它清楚的显示了当前已经被抓取的链接数量


抓取完毕后在E:\heritrix-1.14.3\目录下生成以个jobs目录
进入jobs 可以看到 verycd-20090415024225919 其中verycd就是job的名称
进去? 里面有一个mirror目录 是因为在前面设置了Writer的类型为MirrorWriter
里面每一个站点的URL地址即为保存的目录名称


至此 heritrix抓取任务就到此结束...

  相关解决方案