网络爬虫调研报告.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

网络爬虫调研报告

基本原理

Spider概述

Spider即网络爬虫,其定义有广义和狭义之分。狭义上指遵循标准的http协议运用超链接和Web文档检索的方法遍历万维网信息空间的软件程序;而广义的定义则是所有能遵循http协议检索Web文档的软件都称之为网络爬虫。

Spider是一个功能很强的自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.它通过请求站点上的HTML文档访问某一站点。它遍历Web空间,不断从一个站点移动到另一个站点,自动建立索引,并加入到网页数据库中。网络爬虫进入某个超级文本时,它运用HTML语言的标记结构来搜索信息及获取指向其他超级文本的URL地址,可以完全不依赖用户干预实现网络上的自动爬行和搜索。

Spider的队列

(1)等待队列:新发现的URL被加入到这个队列,等待被Spider程序解决;

(2)解决队列:要被解决的URL被传送到这个队列。为了避免同一个URL被多次解决,当一个URL被解决过后,它将被转移到完毕队列或者错误队列(假如发生错误)。

(3)错误队列:假如在下载网页是发生错误,该URL将被加入到错误队列。

(4)完毕队列:假如在解决网页没有发生错误,该URL将被加入到完毕队列。

网络爬虫搜索策略

在抓取网页的时候,目前网络爬虫一般有两种策略:无主题搜索与基于某特定主体的专业智能搜索。其中前者重要涉及:广度优先和深度优先。广度优先是指网络爬虫会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,由于这个方法可以让网络爬虫并行解决,提高其抓取速度。深度优先是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,解决完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络爬虫在设计的时候比较容易。大多数网页爬行器采用宽度优先搜索策略或者是对这种策略的某些改善。

在专业搜索引擎中,网络爬虫的任务是获取Web页面和决定链接的访问顺序,它通常从一个“种子集”(如用户查询、种子链接或种子页面)发,以迭代的方式访问页面和提取链接。搜索过程中,未访问的链接被暂存在一个称为“搜索前沿”(SpiderFrontier)的队列中,网络爬虫根据搜索前沿中链接的“重要限度”决定下一个要访问的链接。如何评价和预测链接的“重要限度”(或称价值)是决定网络爬虫搜索策略的关键。

众多的网络爬虫设计各不相同,但归根结底是采用不同的链接价值评价标准。

常用开源网络爬虫介绍及其比较

Nutch

开发语言:Java

简介:

Apache的子项目之一,属于Lucene项目下的子项目。

Nutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式解决模型保证了系统的性能,类似Eclipse的插件机制保证了系统的可客户化,并且很容易集成到自己的应用之中。

?

Larbin

开发语言:C++

简介

larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人SébastienAilleret独立开发。larbin目的是可以跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。

Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完毕。此外,如何存储到数据库以及建立索引的事情larbin也不提供。

latbin最初的设计也是依据设计简朴但是高度可配置性的原则,因此我们可以看到,一个简朴的larbin的爬虫可以天天获取500万的网页,非常高效。

?

Heritrix

开发语言:Java

简介

与Nutch比较

??????Heritrix和Nutch。两者均为Java开源框架,Heritrix是SourceForge上的开源产品,Nutch为Apache的一个子项目,它们都称作网络爬虫/蜘蛛(WebCrawler),它们实现的原理基本一致:深度遍历网站的资源,将这些资源抓取到本地,使用的方法都是分析网站每一个有效的URI,并提交Http请求,从而获得相应结果,生成本地文献及相应的日记信息等。

? Heritrix是个archivalcrawler--用来获取完整的、精确的、站点内容的深度复制。涉及获取图像以及其他非文本内容。抓取并存储相关的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。爬虫通过Web用户界面启动、监控、调整,允许弹性的定义要获取的URL。

两者的差异:

Nutch只获取并保存可索引的内容。Heritrix则是

文档评论(0)

139****3710 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档