网络爬虫调研报告
基本原理
Spider
概述
Spider
即网络爬虫
,
其定义有广义和狭义之分。狭义上指遵循标准的
http
协议利用超链接和
Web
文档检索的方法遍历万维网信息空间的软件程序
;
而广义的定义则是所有能遵循
http
协议检索
Web
文档的软件都称之为网络爬虫。
Spider
是一个功能很强的自动提取网页的程序
,
它为搜索引擎从万维网上下载网页
,
是搜索引擎的重要组成
.
它通过请求站点上的
HTML
文档访问某一站点。它遍历
Web
空间
,
不断从一个站点移动到另一个站点
,
自动建立索引
,
并加入到网页数据库中。网络爬虫进入某个超级文本时
,
它利用
HTML
语言的标记结构来搜索信息及获取指向其他超级文本的
URL
地址
,
可以完全不依赖用户干预实现网络上的自动爬行和搜索。
Spider
的队列
(
1
)等待队列
:
新发现的
URL
被加入到这个队列
,
等待被
Spider
程序处理
;
(
2
)处理队列
:
要被处理的
URL
被传送到这个队列。为了避免同一个
URL
被多次处理
,
当一个
URL
被处理过后
,
它将被转移到完成队列或者错误队列
(
如果发生错误
)
。
(
3
)错误队列
:
如果在下载网页是发生错误
,
该
URL
将被加入
到错误队列。
(
4
)完成队列
:
如果在处理网页没有发生错误
,
该
URL
将被加入到完成队列。
网络爬虫搜索策略
在抓取网页的时候
,
目前网络爬虫一般有两种策略
:
无主题搜索与基于某特定主体的专业智能搜索。其中前者主要包括
:
广度优先和深度优先。广度优先是指网络爬虫会先抓取起始网页中链接的所有网页
,
然后再选择其中的一个链接网页
,
继续抓取在此网页中链接的所有网页。这是最常用的方式
,
因为这个方法可以让网络爬虫并行处理
,
提高其抓取速度。深度优先是指网络爬虫会从起始页开始
,
一个链接一个链接跟踪下去
,
处理完这条线路之后再转入下一个起始页
,
继续跟踪链接。这个方法有个优点是网络爬虫在设计的时候比较容易。大多数网页爬行器采用宽度优先搜索策略或者是对这种策略的某些改进。
在专业搜索引擎中
,
网络爬虫的任务是获取
Web
页面和决定链接的访问顺序
,
它通常从一个
“种子集
”
(
如用户查询、种子链接或种子页面
)
发
,
以迭代的方式访问页面和提取链接。搜索过程中
,
未访问的链接被暂存在一个称为
“搜索前沿
”
(Spider Frontier)
的队列中
,
网络爬虫根据搜索前沿中链接的
“重要程度
”决定下一个要访问的链接。如何评价和预测链接的
“重要程度
”
(
或称价值
)
是决定网络爬虫搜索策略的关键。
众多的网络爬虫设计各不相同
,
但归根结底是采用不同的链接价值评价标准。
常用开源网络爬虫介绍及其比较
Nutch
开发语言:
Java
http://lucene.apache.org/nutch/
简介:
Apache
的子项目之一,属于
Lucene
项目下的子项目。
Nutch
是一个基于
Lucene
,类似
Google
的完整网络搜索引擎解决方案,基于
Hadoop
的分布式处理模型保证了系统的性能,类似
Eclipse
的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。
Larbin
开发语言:
C++
http://larbin.sourceforge.net/index-eng.html
简介
larbin
是一种开源的网络爬虫
/
网络蜘蛛,由法国的年轻人
Sébastien Ailleret
独立开发。
larbin
目的是能够跟踪页面的
url
进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。
Larbin
只是一个爬虫,也就是说
larbin
只抓取网页,至于如何
parse
的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情
larbin
也不提供。
latbin
最初的设计也是依据设计简单但是高度可配置性的原则,因此我们可以看到,一个简单的
larbin
的爬虫可以每天获取500万的网页,非常高效。
Heritrix
开发语言:
Java
http://crawler.archive.org/
简介
与
Nutch
比较
Heritrix
和
Nutch
。二者均为
Java
开源框架,
Heritrix
是
SourceForge
上的开源产品,
Nutch
为
Apache
的一个子项目,它们都称作网络爬虫
/
蜘蛛(
Web
Crawler
),它们实现的原理基本一致:深度遍历网站的资源,将这些资源抓取到本地,使用的方法都是分析网站每一个有效的
URI
,并提交
Http
请求,从而获得相应结果,生成本地文件及相应的日志信息等。
Heritrix
是个
"archival crawler" --
用来获取完整的、精确的、站点内容的深度复制。包括获取图像以及其他非文本内容。抓取并存储相关的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的
URL
不针对先前的进行替换。爬虫通过
Web
用户界面启动、监控、调整,允许弹性的定义要获取的
URL
。
二者的差异:
Nutch
只获取并保存可索引的内容。
Heritrix
则是照单全收。力求保存页面原貌
Nutch
可以修剪内容,或者对内容格式进行转换。
Nutch
保存内容为数据库优化格式便于以后索引;刷新替换旧的内容。而
Heritrix
是添加
(
追加
)
新的内容。
Nutch
从命令行运行、控制。
Heritrix
有
Web
控制管理界面。
Nutch
的定制能力不够强,不过现在已经有了一定改进。
Heritrix
可控制的参数更多。
Heritrix
提供的功能没有
nutch
多,有点整站下载的味道。既没有索引又没有解析,甚至对于重复爬取
URL
都处理不是很好。
Heritrix
的功能强大
但是配置起来却有点麻烦。
三者的比较
一、从功能方面来说,
Heritrix
与
Larbin
的功能类似。都是一个纯粹的网络爬虫,提供网站的镜像下载。而
Nutch
是一个网络搜索引擎框架,爬取网页只是其功能的一部分。
二、从分布式处理来说,
Nutch
支持分布式处理,而另外两个好像尚且还没有支持。
三、从爬取的网页存储方式来说,
Heritrix
和
Larbin
都是将爬取下来的内容保存为原始类型的内容。而
Nutch
是将内容保存到其特定格式的
segment
中去。
四,对于爬取下来的内容的处理来说,
Heritrix
和
Larbin
都是将爬取下来的内容不经处理直接保存为原始内容。而
Nutch
对文本进行了包括链接分析、正文提取、建立索引(
Lucene
索引)等处理。
五,从爬取的效率来说,
Larbin
效率较高,因为其是使用
c++
实现的并且功能单一。
表
3
种爬虫的比较
crawler
|
开发语言
|
功能单一
|
支持分布式爬取
|
效率
|
镜像保存
|
Nutch
|
Java
|
×
|
√
|
低
|
×
|
Larbin
|
C++
|
√
|
×
|
高
|
√
|
Heritrix
|
Java
|
√
|
×
|
中
|
√
|
其他网络爬虫介绍:
Heritrix
Heritrix
是一个开源,可扩展的
web
爬虫项目。
Heritrix
设计成严格按照
robots.txt
文件的排除指示和
META robots
标签。
http://crawler.archive.org/
WebSPHINX
WebSPHINX
是一个
Java
类包和
Web
爬虫的交互式开发环境。
Web
爬虫
(
也叫作机器人或蜘蛛
)
是可以自动浏览与处理
Web
页面的程序。
WebSPHINX
由两部分组成:爬虫工作平台和
WebSPHINX
类包。
http://www.cs.cmu.edu/~rcm/websphinx/
WebLech
WebLech
是一个功能强大的
Web
站点下载与镜像工具。它支持按功能需求来下载
web
站点并能够尽可能模仿标准
Web
浏览器的行为。
WebLech
有一个功能控制台并采用多线程操作。
http://weblech.sourceforge.net/
Arale
Arale
主要为个人使用而设计,而没有像其它爬虫一样是关注于页面索引。
Arale
能够下载整个
web
站点或来自
web
站点的某些资源。
Arale
还能够把动态页面映射成静态页面。
http://web.tiscali.it/_flat/arale.jsp.html
分享到:
相关推荐
网络爬虫调研报告 一 调研背景 项目中要对指定的网络资源进行抓取、存储、分类、索引、并提供检索服务。充当全文检索数据库的是Apache组织下的开源项目Lucene 检索工具,而Lucene只是个搜索引擎工具,它提供API接口...
网络爬虫调研报告样本.doc
网络爬虫调研报告 基本原理 Spider概述 Spider即网络爬虫 ,其定义有广义和狭义之分。狭义上指遵循标准的 http协议利用超链接和 Web文档检索的方法遍历万维网信息空间的软件程序 ;而广义的定义则是所有能遵循 http...
体顶端 网络爬虫调研报告 基本原理 Spider概述 Spider即网络爬虫 ,其定义有广义和狭义之分。狭义上指遵循标准的 http协议利用超链接和 Web文档检索的方法遍历万维网信息空间的软件程序 ;而广义的定义则是所有能遵循 ...
窗体顶端 网络爬虫调研报告 基本原理 Spider概述 Spider即网络爬虫 ,其定义有广义和狭义之分。狭义上指遵循标准的 http协议利用超链接和 Web文档检索的方法遍历万维网信息空间的软件程序 ;而广义的定义则是所有能...
网络爬虫调研报告范本.doc
系统安全综合评估服务 管理体系风险评估 根据对用户现状的调研和分析,辅助客户建设完善的管理体系,从管理角度加强客户信息安全保障体系;安全管理体系落实到四个方面:安全策略、人员与组织、第三方服务、运行维护...