Heritrix基础

原帖地址:http://www.cnblogs.com/hejycpu/archive/2009/01/26/1381004.html

下载Heritrix


     下载页面:http://crawler.archive.org/downloads.html,在此页面中选择 Sourceforge Downloads进入下载列表,选择一个版本的ZIP压缩包进行下载。我下载的版本是Heritrix-1.12.1,因为网上的说明好像都是针对这个版本的……

安装、配置Heritrix
     1、将得到的Heritrix压缩包直接解压缩到某一目录,我选择的是D:/Heritrix。
     2、将 /Heritrix 目录中的heritrix-1.12.1.jar文件解包,把 profiles/default 下的两个文件order.xml和seeds.txt复制到 /heritrix/conf 目录。
     3、以文本编辑方式打开 /heritrix/conf 下的heritrix.properties文件,在“heritrix.cmdline.admin = ” 项的后面加入你所要设定的管理员账户和密码,用“:”分割,如:
     heritrix.cmdline.admin = admin:admin
     4、复制 /heritrix/conf 下的jmxremote.password.template文件到主目录/Heritrix 下,并更名为jmxremote.password。编辑此文件,更改最后两行"monitorRole @PASSWORD@"、"controlRole @PASSWORD@"中的"@PASSWORD@"为管理员密码。如:
                  monitorRole admin
                  controlRole admin
系统自带脚本运行
  将cmd定位到 D:"heritrix"bin,执行 "heritrix --admin=admin:admin" 命令,即可启动 heritrix,

有一点需要注意,heritrix默认使用8080端口,要保证系统端口没有冲突。之后便可以访问 http://127.0.0.1:8080 http://localhost:8080/ 使用 heritrix 提供的WUI,即Web管理端。并且使用"admin/admin"登录。

 [2]选Jobs选项,设置抓取页为http://news.sohu.com/

处理器链的设置方法很简单,就是在下拉列表中选择好,点击Add添加即可。要注意每一项处理器设置都是有顺序关系的。每一项的名称其实都揭示了其作用。
 
这些处理器分别是:

1. frontier

org.archive.crawler.frontier.BdbFrontier  默认的不是这个,注意替换掉默认的,不然的话运行时会出现后面那个异常

2. scope

org.archive.crawler.scope.BroadScope

3. Prefetcher

org.archive.crawler.prefetch.Preselector
org.archive.crawler.prefetch.PreconditionEnforcer

4. Fetcher

org.archive.crawler.fetcher.FetchDNS
org.archive.crawler.fetcher.FetchHTTP

5. Extractor

org.archive.crawler.extractor.ExtractorHTTP
org.archive.crawler.extractor.ExtractorHTML

(这里可以按自己的需要多添几个,比如ExtractorSWF、ExtractorJS什么的,但是前两个是必不可少的)

6. Writer

org.archive.crawler.writer.MirrorWriterProcessor

7. PostProcessor

org.archive.crawler.postprocessor.CrawlStateUpdater
org.archive.crawler.postprocessor.LinksScoper
org.archive.crawler.postprocessor.FrontierScheduler

(FrontierScheduler可以自行扩展)
      
选择Jobs菜单的“Settings”项进入运行参数设置页面。进入运行参数设置页面后,有很多可以设定的参数,点击设置框左边的“?”号,可看到弹出的帮助信息。最简单的可只更改“HTTP-Header”项中的内容,更改其属性值“user-agent”和“from”。
 
其中“user-agent”中的“PROJECT_URL_HERE”对应自己的完整URL地址,“from”中设置自己的合法email地址,这两项设置其实可随便设置,只要格式规则合法即可。图中的@VERSION@可设置为1.12.1,即1.12.1版本的。

设置完成后,点击Submit job菜单项,即完成全部任务的建立工作。

 
运行任务
           通过提交设定好的任务,页面返回到Jobs的主菜单,在页面下方有任务的一些信息和设置菜单。此时点击左上角的“Console”菜单,返回主页面,点击“Start”可以开始任务。点击左下角红色框标出的“Refresh”选项,可以刷新任务状态。要暂停当前任务。可点击任务状态旁的选项“Pause”。抓取页面会存放在工作目录下的mirror文件夹内。

 

每一个站点的URL地址即为保存的目录名称,其文件和对应的服务目录结构被保存到此目录下面。此处看出,Heritrix更像一个强大的网站下载工具。至此,Heritrix的简单抓取任务设置描述完毕。

 

 

补充:为了在抓取时不保存其他无关页面,可扩展FrontierScheduler来抓取特定的内容。

 

如果出现这样的异常:

第一条异常
Time:  ??. 26, 2009 06:52:05 GMT 
Level:  SEVERE 
Message:  On crawl: news Unable to setup crawl modules

Exception:  java.lang.ClassCastException: org.archive.crawler.settings.ModuleType cannot be cast to org.archive.crawler.framework.Frontier
Stacktrace: java.lang.ClassCastException: org.archive.crawler.settings.ModuleType cannot be cast to org.archive.crawler.framework.Frontier
at org.archive.crawler.framework.CrawlController.setupCrawlModules(CrawlController.java:654)
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:377)
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(Unknown Source)

第二条异常
Time:  ??. 26, 2009 06:52:05 GMT 
Level:  WARNING 
Message:  Value of illegal type: 'org.archive.crawler.settings.ModuleType', 'org.archive.crawler.framework.Frontier' was expected.: Value of illegal type: 'org.archive.crawler.settings.ModuleType', 'org.archive.crawler.framework.Frontier' was expected.

Exception:  No associated exception.

有可能是Frontier设置错误导致的。检查一下上面配置处理链的部分,是否选中的是:org.archive.crawler.frontier.BdbFrontier 

你可能感兴趣的:(exception,url,任务,jobs,文本编辑,下载工具)