网络爬虫文档Word文档下载推荐.docx
- 文档编号:17719111
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:10
- 大小:32.32KB
网络爬虫文档Word文档下载推荐.docx
《网络爬虫文档Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网络爬虫文档Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
(2)网页或数据的分析与过滤;
基于网络拓扑
基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的对象(可以是网页或网站等)作出评价的算法。
又分为网页粒度、网站粒度和网页块粒度这三种。
(均与pagerankHITS算法有关)
PageRank
基本思想:
如果网页T存在一个指向网页A的链接,则表明T的所有者认为
A比较重要,从而把T的一部分重要性得分赋予A。
这个重要性得分值:
PR(T)/C(T)
其中PR(T)为T的PageRank值,C(T)为T的出链数,则A的PageRank值为一系列类似于T德页面重要性得分值的累加。
优点:
是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;
有效减少在线查询时的计算量,极大降低了查询相应时间。
不足:
人们的查询具有主体特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低;
另外,PageRank有很严重的对新网页的歧视。
HITS
一个网页重要性的分析的算法,根据一个网页的入度(指向此网页的超链接)和出度(从此网页指向别的网页)来衡量网页的重要性。
其最直观的意义是如果一个网页的重要性很高,则他所指向的网页的重要性也高。
一个重要的网页被另一个网页所指,则表明指向它的网页重要性也会高。
指向别的网页定义为Hub值,被指向定义为Authority值。
通常HITS算法是作用在一定范围的,比如一个以程序开发为主题网页,指向另一个以程序开发为主题的网页,则另一个网页的重要性就可能比较高,但是指向另一个购物类的网页则不一定。
在限定范围之后根据网页的出度和入度建立一个矩阵,通过矩阵的迭代运算和定义收敛的阈值不断对两个向量Authority和Hub值进行更新直至收敛。
基于网页内容
基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。
网页的内容从原来的以超文本为主,发展到后来动态页面(或称为HiddenWeb)数据为主,后者的数据量约为直接可见页面数据(PIW,PubliclyIndexableWeb)的400~500倍。
另一方面,多媒体数据、WebService等各种网络资源形式也日益丰富。
因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。
本节根据网页数据形式的不同,将基于网页内容的分析算法,归纳以下三类:
第一种针对以文本和超链接为主的无结构或结构很简单的网页;
第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;
第三种针对的数据界于第一和第二类数据之间,具有较好的结构,显示遵循一定模式或风格,且可以直接访问。
基于用户访问行为
(3)对URL的搜索策略。
广度优先搜索策略
广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次
的搜索。
该算法的设计和实现相对简单。
在目前为覆盖尽可能多的网页,一般使用
广度优先搜索方法。
其基本思想是认为与初始URL在一定链接距离内的网页具有
主题相关性的概率很大。
另外一种方法是将广度优先搜索与网页过滤技术结合使用,
先用广度优先策略抓取网页,再将其中无关的网页过滤掉。
这些方法的缺点在于,
随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。
最佳优先搜索策略
最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,
或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。
它只访问经过
网页分析算法预测为“有用”的网页。
存在的一个问题是,在爬虫抓取路径上的很
多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。
深度优先搜索策略
度优先搜索时一种在开发爬虫早期使用较多的方法。
它的目的是要达到被搜索结
构的叶结点(即那些不包含任何超链的HTML文件)。
在一个HTML文件中,当一
个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链
结果之前必须完整地搜索单独的一条链。
深度优先搜索沿着HTML文件上的超链走
到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的
其他超链。
当不再有其他超链可选择时,说明搜索已经结束。
爬行策略
选择策略
就现在网络资源的大小而言,即使很大的搜索引擎也只能获取网络上可得到资源的一小部分。
由劳伦斯河盖尔斯共同做的一项研究指出,没有一个搜索引擎抓取的内容达到网络的16%(劳伦斯河盖尔斯,2001)。
网络爬虫通常仅仅下载网页内容的一部分,但是大家都还是强烈要求下载的部分包括最多的相关页面,而不仅仅是一个随机的简单的站点。
这就要求一个公共标准来区分网页的重要程度,一个页面的重要程度与他自身的质量有关,与按照链接数、访问数得出的受欢迎程度有关,甚至与他本身的网址(后来出现的把搜索放在一个顶级域名或者一个固定页面上的垂直搜索)有关。
设计一个好的搜索策略还有额外的困难,它必须在不完全信息下工作,因为整个页面的集合在抓取时是未知的。
Cho等人(Choetal,1998)做了第一份抓取策略的研究。
他们的数据是斯坦福大学网站中的18万个页面,使用不同的策略分别模仿抓取。
排序的方法使用了广度优先,后链计数,和部分pagerank算法。
计算显示,如果你想要优先下载pagerank高的页面,那么,部分PageRank策略是比较好的,其次是广度优先和后链计数。
并且,这样的结果仅仅是针对一个站点的。
Najork和Wiener(NajorkandWiener,2001)采用实际的爬虫,对3.28亿个网页,采用广度优先研究。
他们发现广度优先会较早的抓到PageRank高的页面(但是他们没有采用其他策略进行研究)。
作者给出的解释是:
“最重要的页面会有很多的主机连接到他们,并且那些链接会较早的发现,而不用考虑从哪一个主机开始。
”
Abiteboul(Abiteboul等人,2003),设计了一种基于OPIC(在线页面重要指数)的抓取战略。
在OPIC中,每一个页面都有一个相等的初始权值,并把这些权值平均分给它所指向的页面。
这种算法与Pagerank相似,但是他的速度很快,并且可以一次完成。
OPIC的程序首先抓取获取权值最大的页面,实验在10万个幂指分布的模拟页面中进行。
并且,实验没有和其它策略进行比较,也没有在真正的WEB页面测试。
Boldi等人(Boldietal.,2004)的模拟检索实验进行在从.it网络上取下的4000万个页面和从webbase得到的1亿个页面上,测试广度优先和深度优先,随机序列和有序序列。
比较的基础是真实页面pageRank值和计算出来的pageRank值的接近程度。
令人惊奇的是,一些计算pageRank很快的页面(特别明显的是广度优先策略和有序序列)仅仅可以达到很小的接近程度。
Baeza-Yates等人(Baeza-Yatesetal.,2005)在从.gr域名和.cl域名子网站上获取的300万个页面上模拟实验,比较若干个抓取策略。
结果显示OPIC策略和站点队列长度,都比广度优先要好;
并且如果可行的话,使用之前的爬行抓取结果来指导这次抓取,总是十分有效的。
Daneshpajouh等人(Daneshpajouhetal.,2008)设计了一个用于寻找好种子的社区。
它们从来自不同社区的高PageRank页面开始检索的方法,迭代次数明显小于使用随机种子的检索。
使用这种方式,可以从以前抓取页面之中找到好的种子,使用这些种子是十分有效的。
重新访问策略
网络具有动态性很强的特性。
抓取网络上的一小部分内容可能会花费真的很长的时间,通常用周或者月来衡量。
当爬虫完成它的抓取的任务以后,很多操作是可能会发生的,这些操作包括新建,更新和删除。
从搜索引擎的角度来看,不检测这些事件是有成本的,成本就是我们仅仅拥有一份过时的资源。
最常使用的成本函数,是新鲜度和过时性(2000年,Cho和Garcia-Molina)
新鲜度:
这是一个衡量抓取内容是不是准确的二元值。
在时间t内,仓库中页面p的新鲜度是这样定义的:
过时性:
这是一个衡量本地已抓取的内容过时程度的指标。
在时间t时,仓库中页面p的时效性的定义如下:
在页面抓取中,是新鲜度和过时性的发展。
Coffman等人(EdwardG.Coffman,1998)是从事爬虫对象定义的,他们提出了一个相当于新鲜度的概念,但是使用了不同的措词:
他们建议爬虫必须最小化过时页面部分。
他们指出网络爬行的问题就相当于多个队列,一个投票系统;
这里,爬虫是服务器,不同的站点是队列。
页面修改是到达的顾客,页面切换的时间是页面进入一个单一站点的间隔。
在这个模型下,每一个顾客在投票系统的平均时间,相当于爬虫的平均过时性。
爬虫的目标是尽可能高的提高页面的新鲜度,同时降低页面的过时性。
这一目标并不是完全一样的,第一种情况,爬虫关心的是有多少页面时过时的;
在第二种情况,爬虫关心的页面过时了多少。
两种最简单的重新访问策略是由Cho和Garcia-Molina研究的(Cho和Garcia-Molina,2003):
统一策略:
使用相同的频率,重新访问收藏中的所有的链接,而不考虑他们更新频率。
正比策略:
对变化越多的网页,重新访问的频率也越高。
网页访问的频率和网页变化的频率直接相关。
Garcia-Molina证明了一个出人意料的结果。
以平均新鲜度方式衡量,统一策略在模拟页面和真实的网络抓取中都比正比策略出色。
对于这种结果的解释是:
当一个页面变化太快的时候,爬虫将会将会在不断的尝试重新抓取而浪费很多时间,但是却还是不能保证页面的新鲜度。
页面的新鲜度,我们应该宣判变化太快的页面死罪(Cho和Garcia-Molina,2003a)。
最佳的重新访问策略既不是统一策略,也不是正比策略;
保持平均页面新鲜度高的最佳方法策略包括忽略那些变化太快的页面,而保持页面平均过时性低的方法则是对每一页按照页面变化率单调变化的策略访问。
两种情况下,最佳的策略较正比策略,都更接近统一策略。
正如Coffman等人(EdwardG.Coffman,1998)所注意到的:
“为了最小化页面过时的时间,对任一个页面的访问都应该尽可能的均匀间隔地访问。
”对于重新访问的详尽的策略在大体上是不可以达到的,但是他们可以从数学上得到,因为他们依赖于页面的变化。
(Cho和Garcia-Molina,2003a)指出指数变化是描述页面变化的好方法,同时(Ipeirotis等人,2005)指出了怎么使用统计工具去发现适合这些变化的参数。
注意在这里的重新访问策略认为每一个页面都是相同的(网络上所有的页面价值都是一样的)这不是现实的情况,所以,为了获取更好的抓取策略,更多有关网页质量的信息应该考虑进去。
平衡礼貌策略
爬虫相比于人,可以有更快的检索速度和更深的层次,所以,他们可能使一个站点瘫痪。
不需要说一个单独的爬虫一秒钟要执行多条请求,下载大的文件。
一个服务器也会很难响应多线程爬虫的请求。
就像Koster(Koster,1995)所注意的那样,爬虫的使用对很多工作都是很有用的,但是对一般的社区,也需要付出代价。
使用爬虫的代价包括:
网络资源:
在很长一段时间,爬虫使用相当的带宽高度并行地工作。
服务器超载:
尤其是对给定服务器的访问过高时。
质量糟糕的爬虫,可能是服务器或者路由器瘫痪,或者会尝试下载自己无法处理的页面。
个人爬虫,如果过多的人使用,可能是网络或者服务器阻塞。
对这些问题的一个部分解决方法是漫游器排除协议(Robotsexclusionprotocol),也被称为robots.txt议定书(Koster,1996),这份协议对于管理员指明网络服务器的那一部分不能到达是一个标准。
这个标准没有包括重新访问一台服务器的间隔的建议,虽然访问间隔是避免服务器超载的最有效的办法。
最近的商业搜索软件,如AskJeeves,MSN和Yahoo可以在robots.txt中使用一个额外的“Crawl-delay”参数来指明请求之间的延迟。
对连接间隔时间的第一个建议由Koster1993年给出,时间是60秒。
按照这个速度,如果一个站点有超过10万的页面,即使我们拥有零延迟和无穷带宽的完美连接,它也会需要两个月的时间来下载整个站点,并且,这个服务器中的资源,只有一小部分可以使用。
这似乎是不可以接受的。
Cho(Cho和Garcia-Molina,2003)使用10秒作为访问的间隔时间,WIRE爬虫(Baeza-YatesandCastillo,2002)使用15秒作为默认间隔。
MercatorWeb(Heydon和Najork,1999)爬虫使用了一种自适应的平衡策略:
如果从某一服务器下载一个文档需要t秒钟,爬虫就等待10t秒的时间,然后开始下一个页面。
Dill等人(Dilletal.,2002)使用1秒。
对于那些使用爬虫用于研究目的的,一个更详细的成本-效益分析是必要的,当决定去哪一个站点抓取,使用多快的速度抓取的时候,伦理的因素也需要考虑进来。
访问记录显示已知爬虫的访问间隔从20秒钟到3-4分钟不等。
需要注意的是即使很礼貌,采取了所有的安全措施来避免服务器超载,还是会引来一些网络服务器管理员的抱怨的。
Brin和Page注意到:
运行一个针对超过50万服务器的爬虫,会产生很多的邮件和电话。
这是因为有无数的人在上网,而这些人不知道爬虫是什么,因为这是他们第一次见到。
(Brin和Page,1998)
并行策略
爬虫是并行运行多个进程的爬虫。
它的目标是最大化下载的速度,同时尽量减少并行的开销和下载重复的页面。
为了避免下载一个页面两次,爬虫系统需要策略来处理爬虫运行时新发现的URL,因为同一个URL地址,可能被不同的爬虫进程抓到。
二、常见爬虫
1、Google
早期的Google爬虫系统由5个模块处理不同的任务。
一个URL服务器从磁盘文件读URL列表并将其转发到Crawler上。
每个Crawler单独运行在一台机器上,采用单线程异步10方式,一次维持300个连接并行爬行。
Crawler将网页传输到存储服务器上压缩并保存。
索引进程从HTML页面中抽取链接并存放在不同的文件中。
一个URL解析器读取这些链接文件并转化为绝对路径,由URL服务器读取。
后期Google的改进主要有:
(1)采用自有的文件系统(GFS)和数据库系统(BigTable)来存取数据;
(2)采用MapReduce技术来分布式处理各种数据的运算。
2、mercator
康柏系统研究中心的AIlanHeydon和MarcNajork设计了名叫Mercator的爬行器。
系统采用Java的多线程同步方式实现并行处理,并加入了很多优化策略如DNS缓冲、延迟存储等以提升爬行器运行效率。
它采用的数据结构可以不管爬行规模的大小,在内存中只占有限的空间。
这些数据结构的大部分都在磁盘上,在内存中只存放有限的部分,伸缩性很强。
3、北大天网
北大天网是国内高性能网络爬虫的先行者,它的架构经历了集中式向分布式的改进,能够胜任10亿级的网页搜索,其基于站点的两阶段哈希机制有效地解决了搜索过程中Crawler动态加入和退出的问题。
4、InternetArchive
InternetArchive的每台Crawler同时对64个站点进行爬行,每个站点被唯一分派到一个Crawler上。
Crawler从磁盘上读取URL列表,采取异步10方式下载网页,并抽取链接。
如果该链接属于本机抓取,则放人待抓取列表,存到磁盘上,并周期性地传送到其它Crawler上。
5、UbiCrawler
UbiCrawler项目是一个高性能的爬虫,主要侧重于完全分布性和高容错率。
它的主要特性包括:
平台独立性、良好的伸缩性、高效的分配函数、各功能模块的完全分布式、没有单点故障的问题。
6、IRLBOT
IRLBOT是TAMU开发的大规模网络Crawler,它们宣称已经抓取了60亿网页。
该爬虫能胜任100亿级网页爬行,可伸缩性很强,在“礼貌”爬行和反垃圾页面上做了很多工作。
三、Metaseeker(原理及应用)
MetaSeeker工具包利用Mozilla平台的能力,只要是Firefox看到的东西,它都能提取。
1、定义
MetaSeeker是一个Web网页抓取/数据抽取/页面信息提取工具包,能够按照用户的指导,从Web页面上筛选出需要的信息,并输出含有语义结构的提取结果文件(XML文件)。
2、优点
众所周知,Web页面显示的信息是给人阅读的,对于机器来说,是无结构的,MetaSeeker解决了一个关键问题:
将无结构的Web页面信息转换成有结构的适于机器处理的信息。
可以应用于专业搜索、Mashup和Web数据挖掘领域。
3、工具箱
(1)MetaStudio:
是Web页面信息结构描述工具,提供GUI界面,作为Firefox扩展(Firefoxextension)发行,推荐与MetaCamp和DataStore配套使用,这样信息结构描述文件和各种信息提取指令文件就可以上载到MetaCamp和DataStore服务器,以拥有协同描述页面信息结构和分享信息提取成果的能力。
(2)DataScraper:
是Web页面信息提取(网页抓取/抽取)工具,利用MetaStudio生成的各种信息提取指令文件,对特定页面的信息进行连续提取,并将信息存储在DataStore服务器中。
提供GUI界面,作为Firefox扩展发行,技术核心是一个自研的工作流引擎,由信息提取工作流指令文件驱动。
(3)MetaCamp:
是存储和管理信息结构描述文件的服务器。
作为一个应用(application)部署在Tomcat等Servlet容器中。
(4)DataStore:
是存储和管理信息提取线索、各种信息提取指令文件和信息提取结果文件的服务器,集成Lucenev2.3.2技术,能够为结果文件建立索引。
4、安装
(1)硬件条件
Web页面语义结构描述工具MetaStudio的工作台比较复杂,显示器的分辨率在1280X1024以上才能完整展现。
Web页面信息提取工具DataScraper对显示器分辨率没有特别的要求。
(2)软件要求
虽然语义结构描述和网页数据抓取规则生成软件MetaStudio和网页数据抓取和格式化软件DataScraper都作为Firefox的扩展发行的,但两者对软件环境要求是不一样的,同一个DataScraper软件包可以安装在不同操作系统和不同版本的Firefox上,而MetaStudio针对不同的系统软件环境有不同的发行包,需要区别对待。
(3)下载与安装
下载的同时进行安装:
在下载弹出窗口中选择“运行”,并指定运行程序Firefox
下载保存后安装:
在下载弹出窗口中选择“保存”,以后安装
(4)三种映射的区别
抓取网页信息时需要将各字段值映射到已构建好的信息属性(我们要抓取的内容名称)中,有内容映射、FreeFormat映射和样例复制品映射三种。
下面用一个表格来说明一下三者的区别。
内容映射
FreeFormat映射
样例复制品映射
用途
只对字段进行映射
可对字段和字段组顶层容器进行映射
只对顶层容器映射
原理
对网页代码的位置进行映射
对网页代码的结构进行映射
优劣
易受网页更新影响
1.基本不受网页代码位置变化影响
2.对顶层容器映射时,只需对首条记录做一次映射即可
需对顶层容器做两次映射
适用
多数针对text,亦可对url,自由表达式等
具有id、class标志
提取
单一数据
1.自动为此信息属性添加block特性
2.并默认为提取此代码段下所有文本内容
3.以上两个设定均可自由修改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 爬虫 文档