heritrix下载,安装,使用

1.下载
到官网http://sourceforge.net/projects/archive-crawler/下载最新版,heritrix每个版本都提供4个下载文件(tar.gz, src.tar.gz,zip, src,zip)。我下载了:
heritrix-1.14.4.zip
heritrix-1.14.4-src.zip
两个文件。
2.安装
第一种是直接在命令行中配置,解压heritrix-1.14.4.zip到C盘根目录,并更名为heritrix,复制C:\heritrix\conf目录下的jmxremote.password.template文件到目录下,并更名为jmxremote.password,并像下面一样修改其内容(最后两行):
monitorRole @123456789@ ->monitorRole admin (@于@之间设置的是密码)
controlRole @123456789@ ->controlRole shi (后面是:->用户角色 用户名)
然后进入c:\heritrix\conf打开文件heritrix.properties,修改其中的几项key-value值
heritrix.cmdline.admin = admin:770629 (用户名:密码)
heritrix.cmdline.port = 8080 (heritrix服务器默认端口号8080,保证该端口不被占用就行了)
最后.打开cmd,切换目录到c:\heritrix\bin,敲入命令:heritrix --admin=admin:123456789
启动时,可能出现warning:
WARNING: It's currently not possible to run Heritrix in background
on Windows. It was just started minimized in a new Window
and will be shut down as soon as you log off.
不用管,我也不知道什么意思。
第2种是在eclipse(或myeclipse)中导入源码,运行。我在myeclipse中配置,首先,新建一个web project,解压之前下载的src.zip文件,从src中复制java文件夹下的org和st目录到工程的src目录下,复制src中conf文件夹到工程根目录下,复制src中lib目录下的所有jar文件到工程的WEB-INF目录下,从第一种方法中的heritrix目录中的webapps目录下复制admin.war和selftest.war到工程的WebRoot目录下,然后,修改conf文件夹下的heritrix.properties文件,如第一种方法所述即可。导入源码的过程中可能报一个错,找到错误,删除override注解即可。由于我使用的是myeclipse,所以还需要修改Heritrix.java中的getWarsdir()方法,修改其中的webapps为WebRoot即可。还可能报错,找不到tlds-alpha-by-domain.txt文件,从src中的resource目录下找到该文件,拷贝到相应位置即可。最后,运行Heritrix.java文件,即可启动heritrix。
3.使用
启动heritrix后,从浏览器http://127.0.0.1:8080/进入web UI界面,输入用户名密码。
第1个界面:
[img]http://dl.iteye.com/upload/attachment/536043/bcd0a78a-995f-3e52-830e-f20d43bf69ae.jpg[/img]
点击jobs进入第2个界面:
[img]http://dl.iteye.com/upload/attachment/536045/f0198fb4-7b65-3e5d-9d8c-78bf9d89ae37.jpg[/img]
点击with defaults进入第3个界面,在seeds处输入要爬取的网站根域名:
[img]http://dl.iteye.com/upload/attachment/536047/fa76f444-5f53-3fca-a5c7-9c6af06b6e1e.jpg[/img]
点击modules进入第4个界面,如图倒数第3项,选择org.archive.crawler.writer.MirrorWriterProcessor:
[img]http://dl.iteye.com/upload/attachment/536049/7e8bd97f-9935-3a95-8c54-4cf68f249532.jpg[/img]
点击setting进入第5个界面,如图,其中“user-agent”中的“PROJECT_URL_HERE”对应自己的完整URL地址,“from”中设置自己的合法email地址,这两项设置其实可随便设置,只要格式规则合法即可。
[img]http://dl.iteye.com/upload/attachment/536051/9933d87e-f2cb-339d-9580-dda633726fe6.jpg[/img]
最后,点击sunmit job,在console界面就可以start程序了,启动程序后,heritrix会将爬取到的网页放在jobs目录下。
Heritrix是一个开源,可扩展的web爬虫项目。用户可以使用它来从网上抓取想要的资源。Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。 Heritrix是一个爬虫框架,其组织结构如图2.1所示,包含了整个组件和抓取流程: Heritrix采用的是模块化的设计,各个模块由一个控制器类(CrawlController类)来协调,控制器是整体的核心。控制器结构图如图2.2所示:   图2.2 CrawlController类结构图 CrawlController类是整个爬虫的总控制者,控制整个抓取工作的起点,决定整个抓取任务的开始和结束。CrawlController从Frontier获取URL,传递给线程池(ToePool)中的ToeThread处理。 Frontier(边界控制器)主要确定下一个将被处理的URL,负责访问的均衡处理,避免对某一Web服务器造成太大的压力。Frontier保存着爬虫的状态,包括已经找到的URI、正在处理中的URI和已经处理过的URI。 Heritrix是按多线程方式抓取的爬虫,主线程把任务分配给Teo线程(处理线程),每个Teo线程每次处理一个URL。Teo线程对每个URL执行一遍URL处理器链。URL处理器链包括如下5个处理步骤。整个流程都在图2.1中。 (1)预取链:主要是做一些准备工作,例如,对处理进行延迟和重新处理,否决随后的操作。 (2)提取链:主要是下载网页,进行DNS转换,填写请求和响应表单。 (3)抽取链:当提取完成时,抽取感兴趣的HTML和JavaScript,通常那里有新的要抓取的URL。 (4)写链:存储抓取结果,可以在这一步直接做全文索引。Heritrix提供了用ARC格式保存下载结果的ARCWriterProcessor实现。 (5)提交链:做和此URL相关操作的最后处理。检查哪些新提取出的URL在抓取范围内,然后把这些URL提交给Frontier。另外还会更新DNS缓存信息。 服务器缓存(Server cache)存放服务器的持久信息,能够被爬行部件随时查到,包括被抓取的Web服务器信息,例如DNS查询结果,也就是IP地址。 标签:Heritrix
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值