您的位置:首页 > 其它

Heritrix简介以及环境搭建

2015-12-04 17:08 204 查看
Heritrix简介以及环境搭建

一、heritrix简介

Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。

它的执行是递归进行的,主要有以下



Heritrix
有Web 控制管理界面
几步:

1。在预定的URI中选择一个。

2。获取URI

3。分析,归档结果

4。选择已经发现的感兴趣的URI。加入预定队列。

5。标记已经处理过的URI

它是IA的开放源代码,可扩展的,基于整个Web的,归档网络爬虫工程

Heritrix工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的

资源进行归档,建立网络数字图书馆,在过去的6年里,IA已经建立了400TB的数据。

最新版本:heritrix-3.1.0

IA期望他们的crawler包含以下几种:

宽带爬虫:能够以更高的带宽去站点爬。

主题爬虫:集中于被选择的问题。

持续爬虫:不仅仅爬更当前的网页还负责爬日后更新的网页。

实验爬虫:对爬虫技术进行实验,以决定该爬什么,以及对不同协议的爬虫 爬行结果进行分析的。




主要部件

Heritrix主要有三大部件:范围部件,边界部件,处理器链

范围部件:主要按照规则决定将哪个URI入队。

边界部件:跟踪哪个预定的URI将被收集,和已经被收集的URI,选择下一个 URI,剔除已经处理过的URI。

处理器链:包含若干处理器获取URI,分析结果,将它们传回给边界部件


其余部件

WEB管理控制台:大多数都是单机的WEB应用,内嵌JAVA HTTP 服务器。

操作者可以通过选择Crawler命令来操作控制台。

Crawler命令处理部件:包含足够的信息创建要爬的URI。

Servercache(处理器缓存):存放服务器的持久信息,能够被爬行部件随时查到,包括IP地址,历史记录,机器人策略。

处理器链:

预取链:主要是做一些准备工作,例如,对处理进行延迟和重新处理,否决随后的操作。

提取链:主要是获得资源,进行DNS转换,填写请求和响应表单

抽取链:当提取完成时,抽取感兴趣的HTML,JavaScript,通常那里有新的也适合的URI,此时URI仅仅被发现,不会被评估

写链:存储爬行结果,返回内容和抽取特性,过滤完存储。

提交链:做最后的维护,例如,测试那些不在范围内的,提交给边界部件


关键特性编辑

Heritrix 1.0.0包含以下关键特性:

1.用单个爬虫在多个独立的站点一直不断的进行递归的爬。

2.从一个提供的种子进行爬,收集站点内的精确URI,和精确主机。

3.主要是用广度优先算法进行处理。

4.主要部件都是高效的可扩展的

5.良好的配置,包括:

a.可设置输出日志,归档文件和临时文件的位置

b.可设置下载的最大字节,最大数量的下载文档,和最大的下载时间。

c.可设置工作线程数量。

d.可设置所利用的带宽的上界。

e.可在设置之后一定时间重新选择。

f.包含一些可设置的过滤机制,表达方式,URI路径深度选择等等。

Heritrix的局限:

1.单实例的爬虫,之间不能进行合作。

2.在有限的机器资源的情况下,却要复杂的操作。

3.只有官方支持,仅仅在Linux上进行了测试。

4.每个爬虫是单独进行工作的,没有对更新进行修订。

5.在硬件和系统失败时,恢复能力很差。

二、命令行环境搭建
1.获取资源包
http://sourceforge.net/projects/archive-crawler/files/archive-crawler%20(heritrix%201.x)/1.14.4/
2.把heritrix-1.14.4 解压为heritrix
3.建立bat文件,内容为:
%~d0
cd %~dp0
java -Xmx512m -Dheritrix.home=./heritrix -cp"./heritrix/heritrix-1.14.4.jar;./heritrix/lib/ant-1.6.2.jar;./heritrix/lib/bsh-2.0b4.jar;./heritrix/lib/commons-cli-1.0.jar;./heritrix/lib/commons-codec-1.3.jar;./heritrix/lib/commons-collections-3.1.jar;./heritrix/lib/commons-httpclient-3.1.jar;./heritrix/lib/commons-io-1.3.1.jar;./heritrix/lib/commons-lang-2.3.jar;./heritrix/lib/commons-logging-1.0.4.jar;./heritrix/lib/commons-net-2.0.jar;./heritrix/lib/commons-pool-1.3.jar;./heritrix/lib/dnsjava-2.0.3.jar;./heritrix/lib/fastutil-5.0.3-heritrix-subset-1.0.jar;./heritrix/lib/itext-1.2.0.jar;./heritrix/lib/jasper-compiler-tomcat-4.1.30.jar;./heritrix/lib/jasper-runtime-tomcat-4.1.30.jar;./heritrix/lib/javaswf-CVS-SNAPSHOT-1.jar;./heritrix/lib/je-3.3.82.jar;./heritrix/lib/jericho-html-2.6.jar;./heritrix/lib/jets3t-0.5.0.jar;./heritrix/lib/jetty-4.2.23.jar;./heritrix/lib/joda-time-1.6.jar;./heritrix/lib/junit-3.8.2.jar;./heritrix/lib/libidn-0.5.9.jar;./heritrix/lib/mg4j-1.0.1.jar;./heritrix/lib/poi-2.0-RC1-20031102.jar;./heritrix/lib/poi-scratchpad-2.0-RC1-20031102.jar;./heritrix/lib/servlet-tomcat-4.1.30.jar"org.archive.crawler.Heritrix
4.更改/conf/heritrix.propeties的文件,添加用户=admin:admin
5.运行,并在浏览器打开对应的端口网址,登录即可!

三、Eclipse工程环境搭建

0.新建java工厂,选jdk1.6.不是jse1.6

1、复制 com,org,st 这三个文件到工程的src目录下

2、复制lib文件,到工程的根目录下,并且添加到classpath中

3、修改java complier,把error改成warnning,解决Heritrix.java文件报错的方法。

4、复制conf文件至工程的根目录下,并且修改heritrix.properties jmxremote.password.template文件(如果heritrix.properties没有用户密码,那么将会启动不了)

5、复制webapps文件至工程的根目录

6、复制tlds-alpha-by-domain.txt至org.archive.util目录下

7、复制webappsr文件至工程目录下

*8、加载conf文件到run 中classpath里面(Run—runconfig--选择工程—addforld,没有这个的话配置model没有选项出来)

9.找到heritrix.java ---> run

四、测试操作

1.JOB(输入tmall测试数据)——>model(添加writer模块mirrorWriterr)--->setting(更改版本号,url,邮箱)-->submit
2.control-->start-->refresh
3.本地工程jobs文件夹--》mirror-》对应的网页文件。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: