网络蜘蛛在更新网站建设内容的时候,一般来说。不用把网站网页重新抓取一遍,对于大部分的网页,只需要判断网页的属性(主要是日期)把得到属性和上次抓取的属性相比较,如果一样则不用更新。
但搜索引擎为互联网所作出的巨大贡献却显而易见,搜索引擎的历史并不长。搜索引擎改变了世界,改变了用户的使用习惯,让我对互联网的未来充溢信心。
第一个搜索引擎甚至没有分析网页的副本,搜索引擎起步的时候做的并不好。而且没有排名的规范,为了深度挖掘商业潜力,这才推动搜索引擎渐渐发展,研发更先进的系统。
2001年花65亿美元购买了@主页。开始推广的时候,第一个比较大的商业搜索引擎是美国的斯坦福大学。最大的竞争对手是网址站,主要是因为那时候搜索结果中很多都是垃圾邮件,而且人们还不习惯用搜索引擎。
通常叫做关键词堆砌。一旦搜索关键词,元标记是协助搜索引擎排序的一个工具。那关键字和元标志就会告诉搜索引擎内容是哪一页,很短的时间做好中继标记工作,提供相关搜索结果,但随着一些企业的市场营销经验增加,很容易提高关键词的排名,那时候比较流行“贷款、贷款、贷款”之类的关键词堆砌,所以当时搜索引擎的垃圾信息泛滥成灾,造成许多用户的不信任感。
那时候一些重要的搜索引擎包括:EINet银河、WebCrawl莱科斯、InfoseekInktomiAskAllTheWeb等。
每一个搜索引擎都有三个主要局部组成:
1蜘蛛
然后分析该网页。蜘蛛的工作职责是发现新的网页并收集这些网页的快照。
比如扫描网页,蜘蛛以抓取页面为主。所有的搜索引擎都能够实现深层检索和快速检索。深层检索中,蜘蛛可以查找和扫描网页内的所有内容;快速检索中,蜘蛛不遵循深层检索的规则,只搜索重要的关键词局部,而不检查和扫描网页里的所有内容。
也就是说蜘蛛爬行和收录的网页速度越快,大家都知道网站最重要的快照时间。就说明这个网站在搜索引擎心中越重要,比如新华网和人民网,蜘蛛每小时爬4次以上,有的网站一个月也不见得能被蜘蛛爬一次。快照的抓取水平取决于网站内容的流行度、更新速度与网站域名的新旧。
如果有许多外部链接指向这个SEO网站,蜘蛛的爬行规则中。那就说明这个网站比较重要,所以抓取这个网站的频率很高。当然,搜索引擎这样做也是为了省钱,如果都以同样的频率爬行所有网站,这样需要更多的时间和成本,才干得到更全面的搜索结果。
2指数
可能会重复检查网页的内容,蜘蛛在爬行的过程中。然后检查网站内容是否是复制其他网站的以保证网站原创内容的指数,该指数的结果一般都是基本坚持复制内容的排序搜索结果。当你进行搜索时,搜索引擎不会从网络上搜索,会从指数中选择搜索结果,所以搜索得到网页数量并不能代表整个网站,但蜘蛛会在后台扫描和保存网站的网页数量。
谷歌1-10个搜索结果约为16.05万,搜索结果数量中。还有每个区域的搜索结果排名,这些都可以用搜索引擎的算法指数来控制,或者说是控制一部分。
当你输入需要搜索的关键词的时候,每个搜索引擎在全国或全世界各地都建立数据中心。会由于数据更新的时间不同而致搜索结果同步,所以在不同的地区就会出现不同的搜索结果。
3Web界面
算法都是从指数内调用结果,当你使用搜索引擎所看到界面(比方google.combaidu.com搜索结果取决于复杂的算法。通过查询并分析才能在前台显示,所以算法的制作时间比较长,谷歌在这个技术领域上领先。
这类特性在英文搜索上比较常见,还有一些搜索引擎的一站式”特性。一般来说,搜索引擎忽略“一站式”话,这样的搜索结果将更加正确,比如搜索“猫,狗”时候,搜索引擎会排除“猫和狗”只搜索“猫”狗”
一般搜索引擎看到某网页上的关键词逾越密度范围,关键词密度衡量一个关键词呈现在网页上的频率。那它就会分析该网页是否作弊,现在搜索引擎可以做到任何地域的字词相关度处置。所以在一般情况下,关键词应该在整个网页中分散,但一定要有某个标题或段落临时不变。
除了网页排名和一般的链接,搜索引擎还有个核心分析技术就是链接的相关性分析。谷歌还看重锚文本链接,锚文本链接主要在于链接的年龄和位置,还有该链接的网页是否属于权威网站等。
搜索引擎都很关注着,链接是最大的网站质量指标。因为现在友情链接比较难找,而你又很需要友情链接,所以链接中很少有垃圾信息。比如大学的网站在谷歌的权重很高,那是由于大学有很多高质量的外部链接。随着大家都了解到外部链接的重要性后,很多网站开始买卖链接,这也是现在搜索引擎比较头疼的问题,不过ask现在判定网站排名更多在于网站的质量。
期待在查询之前、搜索查询、时间间隔、和语义关系等方面,所有的搜索引擎都希望得到用户反馈的信息。能更加了解到用户的意图,还会跟踪用户的点击,如果用户点击一个物品,然后又马上回到搜索页面,那搜索引擎就会认为这个购买不成功,会删除跟踪清单,其实这种做法已经在向电子商务靠近了
搜索引擎已经开始注重用户体验,由此可以看出。为了做让用户肯定自己的劳动效果,并成为搜索引擎行业的一个标准,或许未来的发展就在个性化搜索。
搜索引擎的工作原理大致可以分为:
就象日常生活中所说的一传十,搜集信息:搜索引擎的信息搜集基本都是自动的搜索引擎利用称为网络蜘蛛(spider自动搜索机器人顺序来连上每一个网页上的超连结。机器人顺序根据网页链到其他中的超链接。十传百…一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超连结,机器人便可以遍历绝大部分网页。
还要将它依照一定的规则进行编排。这样,整理信息:搜索引擎整理信息的过程称为“建立索引”搜索引擎不只要保管搜集起来的信息。搜索引擎根本不用重新翻查它所有保管的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。
搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,接受查询:用户向搜索引擎发出查询。依照每个用户的要求检查自己的索引,极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以协助用户判断此网页是否含有自己需要的内容。
网络蜘蛛原理
那么Spider就是网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,网络蜘蛛即WebSpider一个很形象的名字。把互联网比喻成一个蜘蛛网。从网站某一个页面(通常是首页)开始,读取网页的内容,找到网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。
要抓取互联网上所有的网页几乎是不可能的从目前公布的数据来看,对于搜索引擎来说。容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有许多网页无法从其它网页的链接中找到另一个原因是存储技术和处理技术的问题,如果依照每个页面的平均大小为20K计算(包括图片)100亿网页的容量是1002000G字节,即使能够存储,下载也存在问题(依照一台机器每秒下载20K计算,需要340台机器不停的下载一年时间,才干把所有网页下载完毕)同时,由于数据量太大,提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。
网络蜘蛛一般有两种策略:广度优先和深度优先(如下图所示)广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,抓取网页的时候。然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处置完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。两种策略的区别,下图的说明会更加明确。
有些网络蜘蛛对一些不太重要的网站,由于不可能抓取所有的网页。设置了访问的层数。例如,上图中,A为起始网页,属于0层,BCDEF属于第1层,GH属于第2层,I属于第3层。如果网络蜘蛛设置的访问层数为2话,网页I不会被访问到这也让有些网站上一局部网页能够在搜索引擎上搜索到另外一局部不能被搜索到对于网站设计者来说,扁平化的网站结构设计有助于搜索引擎抓取其更多的网页。
经常会遇到加密数据和网页权限的问题,网络蜘蛛在访问网站网页的时候。有些网页是需要会员权限才干访问。当然,网站的所有者可以通过协议让网络蜘蛛不去抓取(下小节会介绍)但对于一些**演讲的网站,希望搜索引擎能搜索到演讲,但又不能完全**让搜索者查看,这样就需要给网络蜘蛛提供相应的用户名和密码。网络蜘蛛可以通过所给的权限对这些网页进行网页抓取,从而提供搜索。而当搜索者点击检查该网页的时候,同样需要搜索者提供相应的权限验证。
网站与网络蜘蛛
不同于一般的访问,网络蜘蛛需要抓取网页。如果控制不好,则会引起网站服务器负担过重。今年4月,淘宝网就因为雅虎搜索引擎的网络蜘蛛抓取其数据引起淘宝网服务器的不稳定。网站是否就无法和网络蜘蛛交流呢?其实不然,有多种方法可以让网站和网络蜘蛛进行交流。一方面让网站管理员了解网络蜘蛛都来自哪儿,做了些什么,另一方面也告诉网络蜘蛛哪些网页不应该抓取,哪些网页应该更新。
抓取网页的时候,每个网络蜘蛛都有自己的名字。都会向网站标明自己的身份。网络蜘蛛在抓取网页的时候会发送一个请求,这个请求中就有一个字段为Useragent用于标识此网络蜘蛛的身份。例如Googl网络蜘蛛的标识为GoogleBotBaidu网络蜘蛛的标识为BaiDuSpidYahoo网络蜘蛛的标识为InktomiSlurp如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的网络蜘蛛过来过,什么时候过来的以及读了多少数据等等。如果网站管理员发现某个蜘蛛有问题,就通过其标识来和其所有者联系。
一般会访问一个特殊的文本文件Robots.txt这个文件一般放在网站服务器的根目录下,网络蜘蛛进入一个网站。网站管理员可以通过robots.txt来定义哪些目录网络蜘蛛不能访问,或者哪些目录对于某些特定的网络蜘蛛不能访问。例如有些网站的可执行文件目录和临时文件目录不希望被搜索引擎搜索到那么网站管理员就可以把这些目录定义为拒绝访问目录。Robots.txt语法很简单,例如如果对目录没有任何限制,可以用以下两行来描述:
User-agent:*
Disallow:
Robots.txt只是一个协议,当然。如果网络蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止网络蜘蛛对于某些页面的访问,但一般的网络蜘蛛都会遵循这些协议,而且网站管理员还可以通过其它方式来拒绝网络蜘蛛对某些网页的抓取。
会去识别网页的HTML代码,网络蜘蛛在下载网页的时候。其代码的局部,会有META 标识。通过这些标识,可以告诉网络蜘蛛本网页是否需要被抓取,还可以告诉网络蜘蛛本网页中的链接是否需要被继续跟踪。例如:表示本网页不需要被抓取,但是网页内的链接需要被跟踪。
有兴趣的读者检查文献[4关于Robots.txt语法和META Tag语法。]
因为这样可以让更多的访问者能通过搜索引擎找到此网站。为了让本网站的网页更全面被抓取到网站管理员可以建立一个网站地图,现在一般的网站都希望搜索引擎能更全面的抓取自己网站的网页。即SiteMap许多网络蜘蛛会把sitemap.htm文件作为一个网站网页爬取的入口,网站管理员可以把网站内部所有网页的链接放在这个文件里面,那么网络蜘蛛可以很方便的把整个网站抓取下来,防止遗漏某些网页,也会减小对网站服务器的负担。
内容提取
处置的对象是文本文件。对于网络蜘蛛来说,搜索引擎建立网页索引。抓取下来网页包括各种格式,包括html图片、docpdf多媒体、动态网页及其它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取进去。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网络蜘蛛正确跟踪其它链接有一定影响。
这种由专业厂商提供的软件生成的文档,对于docpdf等文档。厂商都会提供相应的文本提取接口。网络蜘蛛只需要调用这些插件的接口,就可以轻松的提取文档中的文本信息和文件其它相关的信息。
HTML有一套自己的语法,HTML等文档不一样。通过不同的命令标识符来表示不同的字体、颜色、位置等版式,如:等,提取文本信息时需要把这些标识符都过滤掉。过滤标识符并非难事,因为这些标识符都有一定的规则,只要依照不同的标识符取得相应的信息即可。但在识别这些信息的时候,需要同步记录许多版式信息,例如文字的字体大小、否是标题、否是加粗显示、否是页面的关键词等,这些信息有助于计算单词在网页中的重要水平。同时,对于HTML网页来说,除了标题和正文以外,会有许多广告链接以及公共的频道链接,这些链接和文本正文一点关系也没有,提取网页内容的时候,也需要过滤这些无用的链接。例如某个网站有“产品介绍”频道,因为导航条在网站内每个网页都有,若不过滤导航条链接,搜索“产品介绍”时候,则网站内每个网页都会搜索到无疑会带来大量垃圾信息。过滤这些无效链接需要统计大量的网页结构规律,抽取一些共性,统一过滤;对于一些重要而结果特殊的网站,还需要个别处置。这就需要网络蜘蛛的设计有一定的扩展性。
一般是通过链接的锚文本(即,对于多媒体、图片等文件。链接文本)和相关的文件注释来判断这些文件的内容。例如有一个链接文字为“张曼玉照片”其链接指向一张bmp格式的图片,那么网络蜘蛛就知道这张图片的内容是张曼玉的照片”这样,搜索“张曼玉”和“照片”时候都能让搜索引擎找到这张图片。另外,许多多媒体文件中有文件属性,考虑这些属性也可以更好的解文件的内容。
相对于静态网页而言,动态网页一直是网络蜘蛛面临的难题。所谓动态网页。由顺序自动生成的页面,这样的好处是可以快速统一更改网页风格,也可以减少网页所占服务器的空间,但同样给网络蜘蛛的抓取带来一些麻烦。由于开发语言不时的增多,动态网页的类型也越来越多,如:aspjspphp等。这些类型的网页对于网络蜘蛛来说,可能还稍微容易一些。网络蜘蛛比较难于处置的一些脚本语言(如VBScript和javascript生成的网页,如果要完善的处置好这些网页,网络蜘蛛需要有自己的脚本解释顺序。对于许多数据是放在数据库的网站,需要通过本网站的数据库搜索才干获得信息,这些给网络蜘蛛的抓取带来很大的困难。对于这类网站,如果网站设计者希望这些数据能被搜索引擎搜索,则需要提供一种可以遍历整个数据库内容的方法。
一直是网络蜘蛛中重要的技术。整个系统一般采用插件的形式,对于网页内容的提取。通过一个插件管理服务顺序,遇到不同格式的网页采用不同的插件处理。这种方式的好处在于扩充性好,以后每发现一种新的类型,就可以把其处置方式做成一个插件补充到插件管理服务顺序之中。
更新周期
因此网络蜘蛛也需不断的更新其抓取网页的内容,由于网站的内容经常在变化。这就需要网络蜘蛛按照一定的周期去扫描网站,检查哪些页面是需要更新的页面,哪些页面是新增页面,哪些页面是已经过期的死链接。
则总会有一局部新生成的网页搜索不到周期过短,搜索引擎的更新周期对搜索引擎搜索的查全率有很大影响。如果更新周期太长。技术实现会有一定难度,而且会对带宽、服务器的资源都有浪费。搜索引擎的网络蜘蛛并不是所有的网站都采用同一个周期进行更新,对于一些重要的更新量大的网站,更新的周期短,如有些新闻网站,几个小时就更新一次;相反对于一些不重要的网站,更新的周期就长,可能一两个月才更新一次。
转发请注明:丁丁猫