当前位置:文档之家› 网络爬行蜘蛛定义及原理讲解

网络爬行蜘蛛定义及原理讲解

网络爬行蜘蛛定义及原理讲解当“蜘蛛”程序出现时,现代意义上的搜索引擎才初露端倪。

它实际上是一种电脑“机器人”(Computer Robot),电脑“机器人”是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。

由于专门用于检索信息的“机器人”程序就象蜘蛛一样在网络间爬来爬去,反反复复,不知疲倦。

所以,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

网络蜘蛛什么是网络蜘蛛呢?网络蜘蛛即Web Spider,是一个很形象的名字。

把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。

网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。

如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

这样看来,网络蜘蛛就是一个爬行程序,一个抓取网页的程序。

起源发展要说网络蜘蛛的起源,我们还得从搜索引擎说起,什么是搜索引擎呢?搜索引擎的起源是什么,这和网络蜘蛛的起源密切相关。

搜索引擎指自动从英特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。

英特网上的信息浩瀚万千,而且毫无秩序,所有的信息象汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。

搜索引擎从1990年原型初显,到现在成为人们生活中必不可少的一部分,它经历了太多技术和观念的变革。

十四年前1994年的一月份,第一个既可搜索又可浏览的分类目录EINetGalaxy上线了。

在它之后才出现了雅虎,直至我们现在熟知的Google、百度。

但是他们都不是第一个吃搜索引擎这个螃蟹的第一人。

从搜索FTP上的文件开始,搜索引擎的原型就出现了,那时还未有万维网,当时人们先用手工后用蜘蛛程序搜索网页,但随着互联网的不断壮大,怎样能够搜集到的网页数量更多、时间更短成为了当时的难点和重点,成为人们研究的重点。

搜索引擎原型初显如果要追溯的话,搜索引擎的历史比WorldWideWeb 还要长。

早在Web出现之前,互联网上就已经存在许多旨在让人们共享的信息资源了。

这些资源当时主要存在于各种允许匿名访问的FTP站点。

为了便于人们在分散的FTP资源中找到所需的东西,1990年,加拿大麦吉尔大学(McGillUniversity)的几个大学生开发了一个软件Archie。

它是一个可搜索的FTP文件名列表,用户必须输入精确的文件名搜索,然后Archie会告诉用户哪一个FTP地址可以下载这个文件。

Archie实际上是一个大型的数据库,再加上与这个大型数据库相关联的一套检索方法。

Archie虽然还不是搜索引擎,但是从它的工作原理上看,它是所有搜索引擎的祖先。

当万维网(WorldWideWeb)出现后,人们可以通过html传播网页信息,网络上的信息开始成倍增长。

人们纷纷使用各种方法将网络上的信息搜集来,进行分类、整理,以方便查找。

现在人们很熟悉的网站雅虎(Y ahoo)就是在这个环境下诞生的。

还在Stanford大学读书的美籍华人杨致远和他的同学迷上了互联网。

他们将互联网上有趣的网页搜集过来,与同学一起分享。

后来,1994年4月,他们俩共同办了雅虎。

随着访问量和收录链接数的增长,雅虎目录开始支持简单的数据库搜索。

但是因为雅虎的数据是手工输入的,所以不能真正被归为搜索引擎,事实上只是一个可搜索的目录。

当“蜘蛛”程序出现时,现代意义上的搜索引擎才初露端倪。

它实际上是一种电脑“机器人”(Computer Robot),电脑“机器人”是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。

由于专门用于检索信息的“机器人”程序就象蜘蛛一样在网络间爬来爬去,反反复复,不知疲倦。

所以,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

这种程序实际是利用html文档之间的链接关系,在Web上一个网页一个网页的爬取(crawl),将这些网页抓到系统来进行分析,并放入数据库中。

第一个开发出“蜘蛛”程序的是Matthew Gray,他于1993年开发了World Wide Web Wanderer,它最初建立时是为了统计互联网上的服务器数量,到后来发展到能够捕获网址。

现代搜索引擎的思路就来源于Wanderer,后来很多人在此基础上对蜘蛛程序进行了改进。

1994年7月20日发布的Lycos网站第一个将“蜘蛛”程序接入到其索引程序中。

引入“蜘蛛”后给其带来的最大优势就在于其远胜于其它搜索引擎的数据量。

自此之后几乎所有占据主导地位的搜索引擎中,都靠“蜘蛛”来搜集网页信息。

Infoseek是另一个重要的搜索引擎,于1994年年底才与公众见面。

起初,Infoseek只是一个不起眼的搜索引擎,它沿袭Y ahoo!和Lycos的概念,并没有什么独特的革新。

但是它友善的用户界面、大量附加服务使它在用户中赢得了口碑。

1995年12月,它与Netscape的战略性协议,使它成为一个强势搜索引擎:当用户点击Netscape浏览器上的搜索按钮时,弹出Infoseek的搜索服务,而此前由Y ahoo!提供该服务。

1995年12月15日,Alta Vista正式上线。

它是第一个支持高级搜索语法的搜索引擎,成功地整合了此前人类所有的信息检索技术,解决了包括字根处理、关键词检索、布尔逻辑,以及通过向量空间模型的查询排名等关键问题。

正式公开之前,Alta Vista就已经拥有20万访问用户,在短短三个星期之内,到访人数由每天30万次增加到200万次。

它的成功在于满足了用户三个方面的需求:网上索引范围超过了此前任何一家搜索引擎;短短几秒钟内便可从庞大的数据库中为用户返回搜索结果;Alta V ista小组从一开始就采用了一种模块设计技术,能够跟踪网站的流行趋势,同时不断扩大处理能力。

在当时许多搜索引擎之中,Alta Vista脱颖而出,成为网络搜索的代名词。

Google就是站在这样的巨人的肩膀上颠覆并创造着。

“上网即搜索”改变了人们上网方式的,就是现在鼎鼎大名的Google。

Google并不是搜索引擎的发明者,甚至有点落后,但是它却让人们爱上了搜索。

1998年9月,在佩奇和布林创建Google之时,业界对互联网搜索功能的理解是:某个关键词在一个文档中出现的频率越高,该文档在搜索结果中的排列位置就要越显著。

这就引出了这样一个问题,如果一个页面充斥着某一个关键字的话,那么它将排在很显著的位置,但这样一个页面对于用户来说,却没有任何意义。

佩奇和布林发明了“网页级别”(PageRank)技术,来排列搜索结果。

即考察该页面在网上被链接的频率和重要性来排列,互联网上指向这一页面的重要网站越多,该页面的位次也就越高。

当从网页A链接到网页B时,Google 就认为“网页A投了网页B一票”。

Google根据网页的得票数评定其重要性。

然而,除了考虑网页得票数的纯数量之外,Google还要分析投票的网页,“重要”的网页所投出的票就会有更高的权重,并且有助于提高其他网页的“重要性”。

Google以其复杂而全自动的搜索方法排除了任何人为因素对搜索结果的影响。

没人能花钱买到更高的网页级别,从而保证了网页排名的客观公正。

除此之外,动态摘要、网页快照、多文档格式支持、地图股票词典寻人等集成搜索也都深得网民的喜爱。

其他众多搜索引擎也都紧跟Google,推出这些服务。

Fast(Alltheweb)公司发布的搜索引擎AllTheWeb,总部位于挪威,其在海外的风头直逼Google。

Alltheweb的网页搜索支持Flash和pdf搜索,支持多语言搜索,还提供新闻搜索、图像搜索、视频、MP3、和FTP搜索,拥有极其强大的高级搜索功能。

而中国的百度更是凭借“更懂中文”而吸引着中国的网络受众,它拥有超过10亿的中文网页数据库,并且,这些网页的数量每天正以千万级的速度在增长。

搜索引擎越来越成为人们生活中重要的一部分,找资料、查地图、听音乐,只有想不到的,没有搜索不到的。

搜索引擎的三个基本原理1.利用蜘蛛系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集回来。

2.由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息,根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。

3.当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。

相关度数值排序,相关度越高,排名越靠前。

最后,由页面生成系统将搜索结果的链接地址和页面内容描述等内容组织起来返回给用户。

工作原理对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。

这其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有许多网页无法从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,如果按照每个页面的平均大小为20K计算(包含图片),100亿网页的容量是100×2000G字节,即使能够存储,下载也存在问题(按照一台机器每秒下载20K计算,需要340台机器不停的下载一年时间,才能把所有网页下载完毕)。

同时,由于数据量太大,在提供搜索时也会有效率方面的影响。

因此,许多搜索引擎的网络蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。

在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先。

在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先。

广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。

这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。

深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。

这个方法有个优点是网络蜘蛛在设计的时候比较容易。

两种策略的区别,下图的说明会更加明确。

由于不可能抓取所有的网页,有些网络蜘蛛对一些不太重要的网站,设置了访问的层数。

例如,在上图中,A为起始网页,属于0层,B、C、D、E、F属于第1 层,G、H 属于第2层,I属于第3层。

如果网络蜘蛛设置的访问层数为2的话,网页I是不会被访问到的。

这也让有些网站上一部分网页能够在搜索引擎上搜索到,另外一部分不能被搜索到。

对于网站设计者来说,扁平化的网站结构设计有助于搜索引擎抓取其更多的网页。

相关主题