请输入您要查询的百科知识:

 

词条 搜索引擎蜘蛛
释义

蜘蛛程序简介

在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了。

现代意义上的搜索引擎的祖先,是1990年由蒙特利尔大学学生Alan Emtage发明的Archie。虽然当时World Wide Web还未出现,但网络中文件传输还是相当频繁的,而且由于大量的文件散布在各个分散的FTP主机中,查询起来非常不便,因此Alan Emtage想到了开发一个可以以文件名查找文件的系统,于是便有了Archie。

Archie工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。由于Archie深受用户欢迎,受其启发,美国内华达System Computing Services大学于1993年开发了另一个与之非常相似的搜索工具,不过此时的搜索工具除了索引文件外,已能检索网页。

当时,“机器人”一词在编程者中十分流行。电脑“机器人”(Computer Robot)是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

搜索引擎蜘蛛分类

搜索引擎抓取网站页面主要靠的是蜘蛛程序也就是我们常说的爬虫。不同的爬虫分工意义不一样,常见的爬虫有通用爬虫和聚焦爬虫,两者紧密联系却又有所区别。

通用爬虫:从一个或若干初始网页url路径开始,在获取初始页面url路径的同时不断抓取页面上的url路径地址,并将抓取页面的url路径地址放入队列。

聚焦爬虫:自动下载页面程序,根据特定的目标,有选择性的访问互联网页面的目标链接,获取页面信息。聚焦爬虫特定:不追求大而广的覆盖,需要根据网页分析算法过滤与主题无关链接,并将链接放入url队列中等待抓取,并根据搜索引擎索引策略从队列中选择下一步抓取的页面,聚焦蜘蛛的意思在于抓取目标主题内容相关的网页,为用户提供目标主题所需要的数据资源。

网络蜘蛛基本原理

搜索引擎主要是由蜘蛛程序(网页爬行器爬虫)、切词器、索引器、查询器几个部分组成。蜘蛛程序主要负责页面的抓取,与切词器、索引器一起共同对网页内容进行分词处理,建立索引数据库。查询器主要是根据用户的查询条件检索索引数据库,并对索引结构进行计算和排名,并提取简要摘要反馈给用户。

网络蜘蛛即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这其中的原因一方面是抓取技术的瓶颈,100亿网页的容量是100×2000G字节,即使能够存储,下载也存在问题(按照一台机器每秒下载20K计算,需要340台机器不停的下载一年时间,才能把所有网页下载完毕)。同时,由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。(链接深度通俗点讲就是网站内部页面与对方网站内部页面的链接,或本网站内页之间的链接。对于不同站点,这种链接可以是单向的内部页面链接,也可以是双向的内部页面链接。)

在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先(如下图所示)。广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。两种策略的区别,下图的说明会更加明确。

由于不可能抓取所有的网页,有些网络蜘蛛对一些不太重要的网站,设置了访问的层数。例如,在上图中,A为起始网页,属于0层,B、C、D属于第1层,G、E、F属于第2层,H属于第3层。如果网络蜘蛛设置的访问层数为2的话,网页H是不会被访问到的。这也让有些网站上一部分网页能够在搜索引擎上搜索到,另外一部分不能被搜索到。对于网站设计者来说,扁平化的网站结构设计有助于搜索引擎抓取其更多的网页。

网络蜘蛛在访问网站网页的时候,经常会遇到加密数据和网页权限的问题,有些网页是需要会员权限才能访问。当然,网站的所有者可以通过协议让网络蜘蛛不去抓取,但对于一些出售报告的网站,他们希望搜索引擎能搜索到他们的报告,但又不能完全免费的让搜索者查看,这样就需要给网络蜘蛛提供相应的用户名和密码。网络蜘蛛可以通过所给的权限对这些网页进行网页抓取,从而提供搜索。而当搜索者点击查看该网页的时候,同样需要搜索者提供相应的权限验证。

蜘蛛是如何抓取网页

当用户搜索关键词的时候,搜索引擎程序会从服务器中的数据库中找到相关信息,进行相关性匹配,然后排序,最后展示给用户一个搜索结果。

搜索引擎的数据库中包含大量的网页信息,而且不断在更新变化,今天主要是谈搜索引擎是如何获得这些网页并存储起来的。

关于搜索引擎获得网页的工具,是一款爬行程序(俗称蜘蛛),蜘蛛程序每天都会爬行大量的网页,并将一些新的网页信息带到服务器以便进行网页索引的建立。

蜘蛛程序如何抓取网页

互联网就是由一个个链接构成的,蜘蛛程序顺着这些链接爬行并发现网页信息,蜘蛛程序爬行每一个页面,当这个页面不再有新的链接信息的时候,它就返回,下次再到这个页面的时候,再去爬行。当给它足够的时间,他就会找到互联网所有的网页信息(至少是被链接的),在爬行的时候,它还会不断的向服务器提供信息,所以我们在进行网站日志分析的时候,如果发现某一个网页被某个搜索引擎的蜘蛛程序程序爬行并成功抓取数据,那么,这个网页就很有可能被索引,所以提高网页的索引数据(收录量)对于一个网站的搜索引擎优化(SEO)是非常有利的。

链接信息处理

当蜘蛛程序在爬行链接的过程中,它还会对爬行过的链接进行处理,因为链接需要载体,查看描述这些链接的载体(文字、图片或其他信息)。发现链接载体

存储链接数据

蜘蛛程序处理网页更新

互联网上存在在网页太多太多,一些是经常更新的,一些是一年半载都没有变化的,那么,如果网页更新了,如果等到蜘蛛回到这里发现更新信息,可能要等上几天甚至几周的时间了,这也是为什么我们有时候在搜索引擎点击一个搜索结果,会发现“网页无法打开”、“你所查找的页面已经被删除”等等情况,这是因为蜘蛛程序上次成功抓取并存放在搜索引擎索引中的信息,而现在这个页面的地址或内容现在发生了变化。

所以这里我们要做的,就是努力增加蜘蛛爬行页面的频率(在以往的网站分析中经常提到),以保证我们网页在搜索引擎数据库中的索引是最新的。

比如蜘蛛程序今天访问了网站的两个网页并成功抓取,隔了两个星期,它再来访问这两个页面的时候,这两个网页其中一个更新了,另一个确没有,那么,蜘蛛程序可能会在一个星期内再次回访更新过的那个网页,而在一个月后才去访问没有更新的那个网页,随着时间的推移,蜘蛛程序会更加频繁是爬行经常更新的网页,以达到更新服务器中的索引数据,向用户提供最新的网页信息。

今天主要分享搜索引擎爬行并抓取网页信息的过程,下次更新会分享搜索引擎对网页内容的分析处理。

网站对蜘蛛不友好的10点因素

1.动态url。

动态url就是数据库驱动的网站所生成的带有符号、随机的url。相比静态url,动态url不利于搜索引擎蜘蛛的爬行及抓取。这也就是网站seo优化时需要静态化或者伪静态化url的原因,因为笔者只用过wp,之前也只提到过wp网站seo优化如何伪静态化url。

2.死链。

通俗的讲,死链就是无法打开的链接。搜索引擎蜘蛛如果在网站内爬行,却屡屡遭受无法打开页面的煎熬。显然,如此一来该网站对于搜索引擎蜘蛛来说正在逐渐的失去信任。

3.各种跳转。

这个指的是通过不同的技术或指令,自动将一个网页跳转到另一个网页。目前搜索引擎比较支持的是301跳转,但是这往往被黑帽seo所利用,从而导致搜索引擎蜘蛛对其比较敏感。

4.flash动画。

很多网站都会在页面上添加flash动画,但是搜索引擎蜘蛛说到底只是一个程序,它不能像人一样观看老姐flash动画的内容。虽然搜索引擎一直在这方面努力,但是以目前的搜索引擎蜘蛛技术还不能完全有效的抓取flash的内容。

另外,如果在网站上出现了flash动画,搜索引擎都建议添加相应的文字描述,以便搜索引擎蜘蛛较直观的了解flash动画内容。

5.js代码。

搜索引擎蜘蛛对抓取js代码也是比较困难的,大量的js代码会严重影响搜索引擎蜘蛛抓取的速度。所以,网站seo优化时要尽量避免,或者少用js代码。

6.框架结构。

使用框结构设计网页流行于互联网诞生初期,但是由于不便于搜索引擎蜘蛛的抓取而被抛弃。在做网站seo优化时,应当完全摒弃框架结构,甚至不需要了解它。

7.必须登录浏览网站。

很多网站有部分甚至全部内容需要注册登陆后才能浏览,大部分社会化媒体(如sns网站、微博等)即是如此。但是你必须要知道,搜索引擎蜘蛛不会填写用户名密码,更不会注册。

8.session id。

session id是为了跟踪每一位访问用户,生成唯一的session id,并加在url中。而这种仅仅session id不同的url的实际页面内容是相同的,从而会导致搜索引擎蜘蛛的重复收录。

9.强制使用cookies。

搜索引擎蜘蛛实际是禁用cookies的,如果不启用cookies就无法正常显示内容的话,搜索引擎蜘蛛就无法看见网页的内容。

10.不稳定的服务器。

如果网站因为服务器的问题经常性的无法正常访问,久而久之,搜索引擎蜘蛛爬到你的域名上却时常“碰壁”,搜索引擎蜘蛛自然而然的就会认为这个网站不靠谱。如此一来,网站也将失去搜索引擎蜘蛛的信任。

蜘蛛工作中的信息收集模块

信息收集模块包括“蜘蛛控制”和“网络蜘蛛”两部分,“蜘蛛”这个称呼形象的描述出了信息收集模块在网络数据形成的“Web”上进行信息获取的功能。总体 而言,网络蜘蛛从种子网页出发,通过反复下载网页并从文档中寻找未曾见过的URL,达到访问其他网页得以遍历Web的目的。而其工作策略一般则可以分为累 积式抓取(cumulative crawling)和增量式抓取(incremental crawling)两种。 累积式抓取是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的所有网页。在理想的软硬件环境下,经过足够的运行时间,累积式抓取的策略 可以保证抓取到相当规模的网页集合。但由于Web数据的动态特性,集合中网页的被抓取时间点是不同的,页面被更新的情况也不同,因此累积式抓取到的网页集 合事实上并无法与真实环境中的网络数据保持一致。

与累积式抓取不同,增量式抓取是指在具有一定量规模的网络页面集合的基础上,采用更新数据的方式选取已有集合中的过时网页进行抓取,以保证所抓取到的数据 与真实网络数据足够接近。进行增量式抓取的前提是,系统已经抓取了足够数量的网络页面,并具有这些页面被抓取的时间信息。 面向实际应用环境的网络蜘蛛设计中,通常既包括累积式抓取,也包括增量式抓取的策略。累积式抓取一般用于数据集合的整体建立或大规模更新阶段;而增量式抓取则主要针对数据集合的日常维护与即时更新。

在确定了抓取策略之后,如何从充分利用网络带宽,合理确定网页数据更新的时间点就成了网络蜘蛛运行策略中的核心问题。

总体而言,在合理利用软硬件资源进行针对网络数据的即时抓取方面,已经形成了相对比较成熟的技术和实用性解决方案,这方面目前所需解决的主要问题,是如 何更好的处理动态网络数据问题(如数量越来越庞大的Web2.0数据等),以及更好的根据网页质量修正抓取策略的问题。

世界各大蜘蛛名字

google蜘蛛: googlebot

百度蜘蛛:baiduspider

yahoo蜘蛛:slurp

alexa蜘蛛:ia_archiver

msn蜘蛛:msnbot

altavista蜘蛛:scooter

lycos蜘蛛: lycos_spider_(t-rex)

alltheweb蜘蛛: fast-webcrawler

inktomi蜘蛛: slurp

有道蜘蛛:YodaoBot和OutfoxBot

热土蜘蛛:Adminrtspider

搜狗蜘蛛:sogou spider

SOSO蜘蛛:sosospider

当然,蜘蛛的作用就是让搜索引擎对有效链接进行搜寻,但不是允许的蜘蛛越多越好,有时会造成负面效果,蜘蛛爬虫太多,会影响服务器的运行,导致网页打开缓慢。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/1 5:57:09