无比强大的网络爬虫new

上传人:ldj****22 文档编号:48899550 上传时间:2018-07-21 格式:PPTX 页数:37 大小:1.46MB
返回 下载 相关 举报
无比强大的网络爬虫new_第1页
第1页 / 共37页
无比强大的网络爬虫new_第2页
第2页 / 共37页
无比强大的网络爬虫new_第3页
第3页 / 共37页
无比强大的网络爬虫new_第4页
第4页 / 共37页
无比强大的网络爬虫new_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《无比强大的网络爬虫new》由会员分享,可在线阅读,更多相关《无比强大的网络爬虫new(37页珍藏版)》请在金锄头文库上搜索。

1、无比强大的网络爬虫 报告人:曹宇heritrixheritrixheritrixheritrix主要内容: 一、通用网络爬虫和聚焦网络爬虫 二、Heritrix项目介绍 三、Heritrix工作原理 四、Heritrix的使用网络爬虫是一个自动提取网页的程序,它为搜索引 擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若 干初始网页的URL开始, 获得初始网页上的URL, 在抓取网页的过程中,不 断从当前页面上抽取新的 URL放入队列,直到满足系 统的一定停止条件,流程 图所示。一、通用网络爬虫和聚焦网络爬虫聚焦爬虫的工作流程 较为复杂,需要根据一定 的网页分析算法过滤与主 题无关

2、的链接,保留有用 的链接并将其放入等待抓 取的URL队列。然后,它将 根据一定的搜索策略从队 列中选择下一步要抓取的 网页URL,并重复上述过程 ,直到达到系统的某一条 件时停止, 如图所示。另外,所有被爬虫抓取的网页将会被系统存贮 ,进行一定的分析、过滤,并建立索引,以便之 后的查询和检索;对于聚焦爬虫来说,这一过程 所得到的分析结果还可能对以后的抓取过程给出 反馈和指导。相对于通用网络爬虫,聚焦爬虫还需要解决三 个主要问题: (1) 对抓取目标的描述或定义; (2) 对网页或数据的分析与过滤; (3) 对URL的搜索策略。 Heritrix既是一种开源的聚焦网络爬虫。 Heritrix工程

3、始于2003年初,IA的目的是开发一个特殊 的爬虫,对网上的资源进行归档,建立网络数字图书馆。在 过去的6年里,IA已经建立了400TB的数据。 IA期望他们的 crawler包含以下几种: 宽带爬虫:能够以更高的带宽去站点爬。 主题爬虫:集中于被选择的问题。 持续爬虫:不仅仅爬更当前的网页还负责爬日后更新的网 页。 实验爬虫:对爬虫技术进行实验,以决定该爬什么,以及对 不同协议的爬虫 爬行结果进行分析的。 二、Heritrix项目介绍 Heritrix在古语里是女继承人的意思,我们的网络爬虫 是从网络上搜集和保存资料以利于未来的研究者和后代,也 是一种继承,所以命名为Heritrix很符合这

4、个软件。是IA( IntelArchitecture)的一个开源,可扩展的web爬虫项目。 Heritrix是一个爬虫框架,可加入一些可互换的组 件。它的执行是递归进行的,主要有以下几步: 在预定的URL( Uniform Resource Locator )中选 择一个。 获取URL 分析,归档结果 选择已经发现的感兴趣的URL。加入预定队列。 标记已经处理过的URL二、Heritrix工作原理左图展现了heritrx爬取网页 的流程,每次只获取一张网页, 并不考虑充分利用它的资源。由 爬虫维护的尚未访问URL列表被称 为队列(Frontier)。该队列初 始化的时候仅存放由用户或其他 程序

5、提供的种子URL。每次程序的 主循环中,爬虫先从队列中取出 下一个URL,通过HTTP协议将对应 的网页爬取下来,然后解析内容 ,并且提取出包含的URL,将其中 新发现的URL追加到队列中。最后 将网页存放到本地磁盘的网页库 中。爬取过程在积累到一定数量 网页时即可终止;或者在队列为 空的时候终止。 范围部件:主要按照规则决定将哪个URL入队。 边界部件:跟踪哪个预定的URL将被收集,和已经 被收集的URL,选择下一个 URL,剔除已经处理过 的URL。 处理器链:包含若干处理器获取URL,分析结果, 将它们传回给边界部件 。Heritrix主要有三大部件:范围部 (CrawlScope),边

6、界部件(Frontier),处理 器链(processor chain)。Heritrix 1.14.3包含以下关键特性: 用单个爬虫在多个独立的站点一直不断的进行 递归的爬。 从一个提供的种子进行爬,收集站点内的精确 URL和精确主机。 主要是用广度优先算法进行处理。 主要部件都是高效的可扩展的。 良好的配置,可设置输出日志,归档文件和临 时文件的位置。 可设置下载的最大字节,最大数量的下载文档 ,和最大的下载时间。 可设置工作线程数量。 可设置所利用的带宽的上界。 可在设置之后一定时间重新选择。 包含一些可设置的过滤机制,表达方式,URL 路径深度选择等等。 四、Heritrix的使用 H

7、eritrix的下载地址: http:/ archive-crawler/在下载完Heritrix的完整开发包后,解压到本地的一个目录下, 其中,Heritrix所用到的工具类库都存在lib下,heritrix-1.14.0.jar是 Heritrix的jar包。在Heritrix目录下有一个conf目录,其中包含了一 个很重要的文件heritrix.propertier.在heritrix.properties中配置了大量与Heritrix运行息息相关 的参数,这些参数主要是配置了Heritrix运行时的一些默认工 具类,WebU1的启动参数,以及Heritrix的日志格式等。当 第一次运行

8、Heritrix 时,只要修改该文件,为其加入WebU i 登录名和密码。Heritrix的主类为org.archive.crawler.Heritrix,运行它就可以启动Heritrix 。在运行它的时候,需要为其加上lib目录下的所有jar包。以下是在命令行 cmd中启动Heritrix时所使用的批处理文件。 java -Xmx512m -cp “lib/commons-codec- 1.3.jar;lib/commons-collections- 3.1.jar;lib/commons-io-1.3.1.jar;lib/dnsjava- 2.0.3.jar;lib/poi-scratch

9、pad-2.0-RC1- 20031102.jar;lib/commons-logging- 1.0.4.jar;lib/commons-httpclient- 3.1.jar;lib/commons-cli-1.0.jar;lib/mg4j- 1.0.1.jar;lib/javaswf-CVS-SNAPSHOT-1.jar;lib/bsh- 2.0b4.jar;lib/servlet-tomcat-4.1.30.jar;lib/junit- 3.8.2.jar;lib/jasper-compiler-tomcat- 4.1.30.jar;lib/commons-lang-2.3.jar;li

10、b/itext- 1.2.0.jar;lib/poi-2.0-RC1-20031102.jar;lib/jetty- 4.2.23.jar;lib/commons-net-1.4.1.jar;lib/libidn- 0.5.9.jar;lib/ant-1.6.2.jar;lib/fastutil-5.0.3- heritrix-subset-1.0.jar;lib/je- 3.3.82.jar;lib/commons-pool-1.3.jar;lib/jasper- runtime-tomcat-4.1.30.jar;D:heritrixheritrix- 1.14.3.jar“ org.ar

11、chive.crawler.Heritrix在上面的批处理文件中,将heritrix所用到的所有的第三方jar包 都写进了classpath中,同时执行了org.archive.crawler.Heritrix这 个主类。通过浏览器访问http:/localhost:8080,就可以打 开Heritrix的WebUI了。如图10-4所示。在这个登录界面,输入刚才在Heritrix.properties中预设的 WebUI的用户名和密码,就可以进入如图10-5所示的Heritrix 的WebUI的主界面。当看到这个页面的时候,就说明Heritrix已经成功的启 动了。在页面的中央有一道状态栏,用

12、于标识当前正在运行 的抓取任务。如图10-6所示:已经看到了Heritrix成功运行后的WebUI,接下来,就要带 领读者来创建一个新的抓取作务。 (1)单击WebUI菜单栏上的“Jobs”标签,就可以进入任 务创建页面。如图10-18所示在任务创建页面中,有4种创建任务的方式,如图10-19 所示,具体含义如下。(3)单击With defaults链接,创建一个新的抓取任务,如图 所示。设置抓取时的处理链 在图中,seeds文本框下有一排按钮,单击“Modules”按钮, 就进入了配置抓取时的处理链的页面,如图所示从我的经验看来,在抓取时,无论是HostScope或 PathScope都不能

13、真正的限制到抓取的内容。需要对Scope 内的代码进行一定的修改才可以,因此,暂时选择 BroadScope来充当示例中的范围限定,其实也就是对范围 不做任何的限定。即从 开始,抓取任何可 以抓取到的信息。如图10-23所示。Frontier则是一个URL的处理器,它将决定下一个被处理 的URL是什么。同时,它还会将经由处理器链所解析出来的 URL加入到等待处理的队列中去。在例子中,使用 BdbFrontier类来做为处理器,全权掌管URL的分配。如图所 示。Extractor:它的名字就很好的揭示了它的作用。它主要用是于解析当 前获取到的服务器返回内容,这些内容通常是以字符串形式缓存的。在

14、这个队列中,包括了一系列的工具,如解析HTML、CSS等。在解析完 毕,取出页面中的URL后,将它们放入队列中,等待下次继续抓取。在 演示中,使用两种Extractor,即ExtractorHTTP和ExtractorHTML。如图 所示。Writer:主要是用于将所抓取到的信息写入磁盘。通常写入磁盘时有 两种形式,一种是采用压缩的方式写入,在这里被称为Arc方式,另一种 则采用镜象方式写入。当然处理起来,镜象方式要更为容易一些,因此 ,在演示中命名用镜象Mirror方式。如图所示。PostProcessor:在整个抓取解析过程结束后,进行一 些扫尾的工作,比如将前面Extractor解析出来

15、的URL有条件 的加入到待处理队列中去。如图所示。设置运行时的参数在设置完处理链后,在页面顶部或底部都可以找到如图 所示的菜单项,单击“Settings”链接,就进入了属性设置的页 面,如图所示。在属性设置页面上有非常多的输入域,Heritrix在抓取 网页时,这些域是用来对的各个组件的值进行预设,如图所 示由于页面上的内容非常多,使用者可能无法全部了解它们 的作用。所以Heritrix提供了一个辅助功能,来在最大程度上 让使用者了解每个参数的含义。如图10-32所示。1max-toe-threads 该参数的含义很容易了解,它表示Heritrix在运行该抓取任务时, 为任务分配多少个线程进行

16、同步抓取。该参数的默认值为100,而事 实上根据笔者的经验,在机器配置和网络均很好的情况下,设置50个 线程数就已经足够使用了。2HTTP-Header在HTTP-Header这个属性域下面,包括两个属性值“user-agent”和 “from”。默认情况下,这两个属性的值如图10-33所示。很明显,这样的值是无法完成真实的HTTP协议的模拟的, 所以,必须要将值改掉。图10-34是笔者机器上的一种配置 ,读者可以借鉴。“VERSION”字符串需要被替换成Heritrix的版本信息。 “PROJECT_URL_HERE”可以被替换成任何一个完整的URL地址。“from”属性中不需要设置真实的E-mail地址,只需是格式正确的 邮件地址就可以了。当正确设置了上述的两个属性后,Heritrix

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号