一、下载:到www.sourceforge.net网站搜索heritrix,然后分别下载下来heritrix-1.14.0-RC1.zip,heritrix-1.14.0-RC1-src.zip
二、配置
.在非开发环境下配置的步骤
1.解压heritrix-1.14.0-RC1.zip,假设解压到了c盘根目录下并把解压后的文件夹命名为heritrix
2.进入c:\heritrix\conf复制文件jmxremote.password.template到c:\heritrix下并把文件重新命名为jmxremote.password,
然后修改其内容为下:
monitorRole @123456789@ ->monitorRole admin (@于@之间设置的是密码,后面是->用户角色用户名)
controlRole @123456789@ ->controlRole shi
并设置文件jmxremote.password的属性为只读
3.进入c:\heritrix\conf打开文件heritrix.properties,修改其中的几项key-value值
heritrix.cmdline.admin = admin:770629 (用户名:密码)
heritrix.cmdline.port = 8080 (heritrix服务器默认端口号8080,保证该端口不被占用就不用改了)
4.打开cmd,切换目录到c:\heritrix\bin
然后敲入命令:heritrix --admin=admin:123456789
.在eclipe中配置并启动的步骤
1.首先解压heritrix-1.14.0-RC1.zip得到heritrix-1.14.0-RC1.jar,然后解压jar包,再解压heritrix-1.14.0-RC1-src.zip
2.我把两个解压后的jar文件和heritrix-1.14.0-RC1-src.zip分别放在了E:\MyWork\heritrix\heritrix-1.14-jar目录下和
E:\MyWork\libs\heritrix\heritrix-1.14.0-RC1-src\heritrix-1.14.0-RC1目录下
3.创建一个动态Web工程
4.把 E:\MyWork\heritrix\heritrix-1.14.0-RC1\lib目录下的所有jar文件导入工程,并且复制到工程下面的
WebContent\WEB_INF下面,工程会自动把这些jar放在Web App Libraries里面
5.把E:\MyWork\libs\heritrix\heritrix-1.14.0-RC1-src\heritrix-1.14.0-RC1\src\java下的com,org,st这三个目录都拷贝到
工程src下面
6.把 E:\MyWork\heritrix\heritrix-1.14-jar下的modules,arcMetaheaderBody.xsl,heritrix.properties,其修该内容是:
heritrix.cmdline.admin = admin:770629 (用户名:密码)
heritrix.cmdline.port = 8080 (heritrix服务器默认端口号8080,保证该端口不被占用就不用改了)
然后将其拷贝到工程src下面
7.把 E:\MyWork\libs\heritrix\heritrix-1.14.0-RC1-src\heritrix-1.14.0-RC1\src下的webapps拷贝到工程目录下面
8.在工程下面新建一个jobs文件夹,heritrix抓取的内容默认是放在该文件夹下面
9.现在就可以运行主类Heritrix.java了,然后就可以以web的形式访问服务器了:http://localhost:8080/登录就ok了
1.登录界面:
2.登录后你会看到这个界面:
3.下面开始建立一个简单的抓取测试点击Jobs进入新建job界面
4点击defaul建立一个缺省抓取
5.点击Modules进行参数设置
除了以上两个组件外,还有五个队列要配置,这5个队列依次heritrix的处理器链
单击setting
进入setting的界面(只需要设置下面的两个参数就可以了,其他的不太了解了):
现在单击 Submitjob 再点击consol 然后点击start 抓取就开始了
下面是通过扩充框架来实现我们自己的抓取逻辑所要做的事情:
heritrix有多个扩展点,在这里我扩展了org.archive.crawler.FrontierScheduler
即写了一个类继承该类:
覆盖 protected void schedule(CandidateURI caURI){
//URL选择策略,只有符合这些条件的url才能进入等待抓取的队列
//代码在此填充
}
然后在Processor.Options内我们的类添加进来如:
ear.spider.postprocessor.FrontierSchedulerForPconlineMobile|FrontierSchedulerForPconlineMobile
表示把我们写的类添加到配置参数里
那么我们只需在抓取是选择我们自己抓取逻辑类就可以了。如图:
发表于 @ 2008年06月30日 16:41:00 | 评论( 8 ) | 编辑| 举报| 收藏
新一篇:java集合框架图
查看最新精华文章 请访问博客首页相关文章 liuminna 发表于2008年7月22日 18:30:02 IP:举报回复删除
在命令行输入 heritrix --admin=admin:admin
提示无法在后台启动heritrix,提示可能有以下原因:
a)login and password not been specified
b)another program uses the port for the web uI
c)jmx password file is missing or permissions not set correctly
新打开的窗口显示exception in thread "main" java.lang.NoClassDfFoundError:org/archive/crawler/heritrix
我设置的用户名密码都是按照你说的方法,请帮我找一下原因,谢谢!liuminna 发表于2008年7月22日 18:31:57 IP:举报回复删除
前面的操作“在非开发环境下配置的步骤
1.解压heritrix-1.14.0-RC1.zip,假设解压到了c盘根目录下并把解压后的文件夹命名为heritrix
2.进入c:\heritrix\conf复制文件jmxremote.password.template到c:\heritrix下并把文件重新命名为jmxremote.password,
然后修改其内容为下:
monitorRole @123456789@ ->monitorRole admin (@于@之间设置的是密码,后面是->用户角色用户名)
controlRole @123456789@ ->controlRole shi
并设置文件jmxremote.password的属性为只读
3.进入c:\heritrix\conf打开文件heritrix.properties,修改其中的几项key-value值
heritrix.cmdline.admin = admin:770629 (用户名:密码)
heritrix.cmdline.port = 8080 (heritrix服务器默认端口号8080,保证该端口不被占用就不用改了)
”都进行了设置,不知问题在哪里