网络爬行蜘蛛定义及原理讲解_第1页
网络爬行蜘蛛定义及原理讲解_第2页
网络爬行蜘蛛定义及原理讲解_第3页
网络爬行蜘蛛定义及原理讲解_第4页
网络爬行蜘蛛定义及原理讲解_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...v.网络爬行蜘蛛定义及原理讲解当“蜘蛛〞程序出现时,现代意义上的搜索引擎才初露端倪。它实际上是一种电脑“机器人〞〔puterRobot〕,电脑“机器人〞是指某个能以人类无法到达的速度不连续地执行某项任务的软件程序。由于专门用于检索信息的“机器人〞程序就象蜘蛛一样在网络间爬来爬去,反反复复,不知疲倦。所以,搜索引擎的“机器人〞程序就被称为“蜘蛛〞程序。网络蜘蛛什么是网络蜘蛛呢?网络蜘蛛即WebSpider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的地址来寻找网页,从某一个页面〔通常是首页〕开场,读取网页的内容,找到在网页中的其它地址,然后通过这些地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

这样看来,网络蜘蛛就是一个爬行程序,一个抓取网页的程序。起源开展要说网络蜘蛛的起源,我们还得从搜索引擎说起,什么是搜索引擎呢?搜索引擎的起源是什么,这和网络蜘蛛的起源密切相关。

搜索引擎指自动从英特网搜集信息,经过一定整理以后,提供应用户进展查询的系统。英特网上的信息浩瀚万千,而且毫无秩序,所有的信息象汪洋上的一个个小岛,网页是这些小岛之间纵横交织的桥梁,而搜索引擎,那么为你绘制一幅一目了然的信息地图,供你随时查阅。

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

十四年前1994年的一月份,第一个既可搜索又可浏览的分类目录EINetGalaxy上线了。在它之后才出现了雅虎,直至我们现在熟知的Google、百度。但是他们都不是第一个吃搜索引擎这个螃蟹的第一人。从搜索FTP上的文件开场,搜索引擎的原型就出现了,那时还未有万维网,当时人们先用手工后用蜘蛛程序搜索网页,但随着互联网的不断壮大,怎样能够搜集到的网页数量更多、时间更短成为了当时的难点和重点,成为人们研究的重点。搜索引擎原型初显如果要追溯的话,搜索引擎的历史比WorldWideWeb还要长。早在Web出现之前,互联网上就已经存在许多旨在让人们共享的信息资源了。这些资源当时主要存在于各种允许匿名的FTP站点。为了便于人们在分散的FTP资源中找到所需的东西,1990年,加拿大麦吉尔大学〔McGillUniversity〕的几个大学生开发了一个软件Archie。它是一个可搜索的FTP文件名列表,用户必须输入准确的文件名搜索,然后Archie会告诉用户哪一个FTP地址可以下载这个文件。Archie实际上是一个大型的数据库,再加上与这个大型数据库相关联的一套检索方法。Archie虽然还不是搜索引擎,但是从它的工作原理上看,它是所有搜索引擎的祖先。当万维网〔WorldWideWeb〕出现后,人们可以通过html传播网页信息,网络上的信息开场成倍增长。人们纷纷使用各种方法将网络上的信息搜集来,进展分类、整理,以方便查找。现在人们很熟悉的雅虎〔〕就是在这个环境下诞生的。还在Stanford大学读书的美籍华人杨致远和他的同学迷上了互联网。他们将互联网上有趣的网页搜集过来,与同学一起分享。后来,1994年4月,他们俩共同办了雅虎。随着量和收录数的增长,雅虎目录开场支持简单的数据库搜索。但是因为雅虎的数据是手工输入的,所以不能真正被归为搜索引擎,事实上只是一个可搜索的目录。当“蜘蛛〞程序出现时,现代意义上的搜索引擎才初露端倪。它实际上是一种电脑“机器人〞〔puterRobot〕,电脑“机器人〞是指某个能以人类无法到达的速度不连续地执行某项任务的软件程序。由于专门用于检索信息的“机器人〞程序就象蜘蛛一样在网络间爬来爬去,反反复复,不知疲倦。所以,搜索引擎的“机器人〞程序就被称为“蜘蛛〞程序。这种程序实际是利用html文档之间的关系,在Web上一个网页一个网页的爬取〔crawl〕,将这些网页抓到系统来进展分析,并放入数据库中。第一个开发出“蜘蛛〞程序的是MatthewGray,他于1993年开发了WorldWideWebWanderer,它最初建立时是为了统计互联网上的效劳器数量,到后来开展到能够捕获网址。现代搜索引擎的思路就来源于Wanderer,后来很多人在此根底上对蜘蛛程序进展了改良。1994年7月20日发布的Lycos第一个将“蜘蛛〞程序接入到其索引程序中。引入“蜘蛛〞后给其带来的最大优势就在于其远胜于其它搜索引擎的数据量。自此之后几乎所有占据主导地位的搜索引擎中,都靠“蜘蛛〞来搜集网页信息。Infoseek是另一个重要的搜索引擎,于1994年年底才与公众见面。起初,Infoseek只是一个不起眼的搜索引擎,它沿袭!和Lycos的概念,并没有什么独特的革新。但是它友善的用户界面、大量附加效劳使它在用户中赢得了口碑。1995年12月,它与Netscape的战略性协议,使它成为一个强势搜索引擎:当用户点击Netscape浏览器上的搜索按钮时,弹出Infoseek的搜索效劳,而此前由!提供该效劳。1995年12月15日,AltaVista正式上线。它是第一个支持高级搜索语法的搜索引擎,成功地整合了此前人类所有的信息检索技术,解决了包括字根处理、关键词检索、布尔逻辑,以及通过向量空间模型的查询排名等关键问题。正式公开之前,AltaVista就已经拥有20万用户,在短短三个星期之内,到访人数由每天30万次增加到200万次。它的成功在于满足了用户三个方面的需求:网上索引范围超过了此前任何一家搜索引擎;短短几秒钟内便可从庞大的数据库中为用户返回搜索结果;AltaVista小组从一开场就采用了一种模块设计技术,能够跟踪的流行趋势,同时不断扩大处理能力。在当时许多搜索引擎之中,AltaVista脱颖而出,成为网络搜索的代名词。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是不会被到的。这也让有些上一局部网页能够在搜索引擎上搜索到,另外一局部不能被搜索到。对于设计者来说,扁平化的构造设计有助于搜索引擎抓取其更多的网页。网络蜘蛛在网页的时候,经常会遇到加密数据和网页权限的问题,有些网页是需要会员权限才能。当然,的所有者可以通过协议让网络蜘蛛不去抓取〔下小节会介绍〕,但对于一些出售报告的,他们希望搜索引擎能搜索到他们的报告,但又不能完全免费的让搜索者查看,这样就需要给网络蜘蛛提供相应的用户名和密码。网络蜘蛛可以通过所给的权限对这些网页进展网页抓取,从而提供搜索。而当搜索者点击查看该网页的时候,同样需要搜索者提供相应的权限验证。每个网络蜘蛛都有自己的名字,在抓取网页的时候,都会向标明自己的身份。网络蜘蛛在抓取网页的时候会发送一个请求,这个请求中就有一个字段为User-agent,用于标识此网络蜘蛛的身份。例如Google网络蜘蛛的标识为GoogleBot,Baidu网络蜘蛛的标识为BaiDuSpider,网络蜘蛛的标识为InktomiSlurp。如果在上有日志记录,管理员就能知道,哪些搜索引擎的网络蜘蛛过来过,什么时候过来的,以及读了多少数据等等。如果管理员发现某个蜘蛛有问题,就通过其标识来和其所有者联系。网络蜘蛛进入一个,一般会一个特殊的文本文件Robots.txt,这个文件一般放在效劳器的根目录下,如:.blogchina./robots.txt。管理员可以通过robots.txt来定义哪些目录网络蜘蛛不能,或者哪些目录对于某些特定的网络蜘蛛不能。例如有些的可执行文件目录和临时文件目录不希望被搜索引擎搜索到,那么管理员就可以把这些目录定义为拒绝目录。Robots.txt语法很简单,例如如果对目录没有任何限制,可以用以下两行来描述:User-agent:*Disallow当然,Robots.txt只是一个协议,如果网络蜘蛛的设计者不遵循这个协议,管理员也无法阻止网络蜘蛛对于某些页面的,但一般的网络蜘蛛都会遵循这些协议,而且管理员还可以通过其它方式来拒绝网络蜘蛛对某些网页的抓取。网络蜘蛛在下载网页的时候,会去识别网页的HTML代码,在其代码的局部,会有META标识。通过这些标识,可以告诉网络蜘蛛本网页是否需要被抓取,还可以告诉网络蜘蛛本网页中的是否需要被继续跟踪。例如:表示本网页不需要被抓取,但是网页内的需要被跟踪。搜索引擎建立网页索引,处理的对象是文本文件。对于网络蜘蛛来说,抓取下来网页包括各种格式,包括html、图片、doc、pdf、多媒体、动态网页及其它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网络蜘蛛正确跟踪其它有一定影响。对于doc、pdf等文档,这种由专业厂商提供的软件生成的文档,厂商都会提供相应的文本提取接口。网络蜘蛛只需要调用这些插件的接口,就可以轻松的提取文档中的文本信息和文件其它相关的信息。但HTML等文档不一样,HTML有一套自己的语法,通过不同的命令标识符来表示不同的字体、颜色、位置等版式,如:、、等,提取文本信息时需要把这些标识符都过滤掉。过滤标识符并非难事,因为这些标识符都有一定的规那么,只要按照不同的标识符取得相应的信息即可。但在识别这些信息的时候,需要同步记录许多版式信息,例如文字的字体大小、是否是标题、是否是加粗显示、是否是页面的关键词等,这些信息有助于计算单词在网页中的重要程度。同时,对于HTML网页来说,除了标题和正文以外,会有许多广告以及公共的频道,这些和文本正文一点关系也没有,在提取网页内容的时候,也需要过滤这些无用的。例如某个有“产品介绍〞频道,因为导航条在内每个网页都有,假设不过滤导航条,在搜索“产品介绍〞的时候,那么内每个网页都会搜索到,无疑会带来大量垃圾信息。过滤这些无效需要统计大量的网页构造规律,抽取一些共性,统一过滤;对于一些重要而结果特殊的,还需要个别处理。这就需要网络蜘蛛的设计有一定的扩展性。对于多媒体、图片等文件,一般是通过的锚文本〔即,文本〕和相关的文件注释来判断这些文件的内容。例如有一个文字为“X曼玉照片〞,其指向一Xbmp格式的图片,那么网络蜘蛛就知道这X图片的内容是“X曼玉的照片〞。这样,在搜索“X曼玉〞和“照片〞的时候都能让搜索引擎找到这X图片。另外,许多多媒体文件中有文件属性,考虑这些属性也可以更好的了解文件的内容。动态网页一直是网络蜘蛛面临的难题。所谓动态网页,是相对于静态网页而言,是由程序自动生成的页面,这样的好处是可以快速统一更改网页风格,也可以减少网页所占效劳器的空间,但同样给网络蜘蛛的抓取带来一些麻烦。由于开发语言不断的增多,动态网页的类型也越来越多,如:asp、jsp、php等。这些类型的网页对于网络蜘蛛来说,可能还稍微容易一些。网络蜘蛛比拟难于处理的是一些脚本语言〔如VBScript和JavaScript〕生成的网页,如果要完善的处理好这些网页,网络蜘蛛需要有自己的脚本解释程序。对于许多数据是放在数据库的,需要通过本的数据库搜索才能获得信息,这些给网络蜘蛛的抓取带来很大的困难。对于这类,如果设计者希望这些数据能被搜索引擎搜索,那么需要提供一种可以遍历整个数据库内容的方法。对于网页内容的提取,一直是网络蜘蛛中重要的技术。整个系统一般采用插件的形式,通过一个插件管理效劳程序,遇到不同格式的网页采用不同的插件处理。这种方式的好处在于扩大性好,以后每发现一种新的类型,就可以把其处理方式做成一个插件补充到插件管理效劳程序之中。由于的内容经常在变化,因此网络蜘蛛也需不断的更新其抓取网页的内容,这就需要网络蜘蛛按照一定的周期去扫描,查看哪些页面是需要更新的页面,哪些页面是新增页面,哪些页面是已经过期的死。搜索引擎的更新周期对搜索引擎搜索的查全率有很大影响。如果更新周期太长,那么总会有一局部新生成的网页搜索不到;周期过短,技术实现会有一定难度,而且会对带宽、效劳器的资源都有浪费。搜索引擎的网络蜘蛛并不是所有的都采用同一个周期进展更新,对于一些重要的更新量大的,更新的周期短,如有些新闻,几个小时就更新一次;相反对于一些不重要的,更新的周期就长,可能一两个月才更新一次。一般来说,网络蜘蛛在更新内容的时候,不用把网页重新抓取一遍,对于大局部的网页,只需要判断网页的属性〔主要是日期〕,把得到的属性和上次抓取的属性相比拟,如果一样那么不用更新。现在大家对网络蜘蛛的工作原理有了初步的了解了吧,了解后就要在以后的制作中考虑蜘蛛的爬行规律,比方制作地图就很重要,好了,如果你有更好的见解,请到这里发表,火鸟非常愿意与你交流,共同研究制作技巧,尽量将自己的制作的符合标准,符合用户的习惯!现代搜索引擎对网页的重要性一般用PR值来量化。一般说来,PR值越高,反映在在搜索结果中的排名越靠前〔重要新越高〕,当前有很多人通过很多方式来提高自己的PR值,除内部的优化外,大多数人采用的是外部。如下:PR(A)=(1-d)+d(PR(t1)/C(t1)+...+PR(tn)/C(tn))其中PR(A)表示的是从一个外部站点t1上,依据Pagerank"系统给你的所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论