`
hududanyzd
  • 浏览: 775135 次
文章分类
社区版块
存档分类
最新评论

认识网络蜘蛛和网站蜘蛛搜索引擎IP

 
阅读更多

认识网络蜘蛛

蜘蛛协议

随着搜索经济的崛起,人们开始越加关注全球各大搜索引擎的性能、技术和日流量。作为企业,会根据搜索引擎的知名度以及日流量来选择是否要投放广告等;作为普通网民,会根据搜索引擎的性能和技术来选择自己喜欢的引擎查找资料;作为学者,会把有代表性的搜索引擎作为研究对象……

而作为一个网站的经营者,其更关心的或许是如何通过网络载体让更多的网民知道自己的网站,进而获得更高的流量和知名度。这其中,搜索引擎已经成了一个重要的且是免费的宣传途径。一方面,搜索引擎会主动出击,寻找网络上的各种网页数据,并在后台按相关条件进行索引;另一方面,各大网站为了能让自己的内容更多的通过搜索引擎向网民展示,都开始对网站结构进行重大调整,其中包括扁平化结构设计、动态(网页)转静态(网页)、Sitemap等。

这些看来不经意的举动都让我们切身感受到搜索引擎对我们网络使用方式的改变起到了重要作用。并且,正因为搜索引擎的兴起以及社会各界对其重视程度日渐高涨,还由此创造了一个全新的职位——SEO。实际上,搜索引擎经济的崛起,又一次向人们证明了网络所蕴藏的巨大商机。网络离开了搜索将只剩下空洞杂乱的数据,以及大量等待去费力挖掘的金矿。

搜索引擎一直专注于提升用户的体验度,其用户体验度则反映在三个方面: 准、全、快。用专业术语讲是:查准率、查全率和搜索速度(即搜索耗时)。其中最易达到的是搜索速度,因为对于搜索耗时在1秒以下的系统来说,访问者很难辨别其快慢了,更何况还有网络速度的影响。因此,对搜索引擎的评价就集中在了前两者:准、全。中文搜索引擎的“准”,需要保证搜索的前几十条结果都和搜索词十分相关,这需由“ 分词技术 ”和“ 排序技术 ”来决定;中文搜索引擎的“全”则需保证不遗漏某些重要的结果,而且能找到最新的网页,这需要搜索引擎有一个强大的网页收集器,一般称为“网络蜘蛛”,也有叫“网页机器人”。

研究搜索引擎技术的文章不少,但大部分讨论的是如何评价网页的重要性,对于网络蜘蛛研究的文章不多。网络蜘蛛技术并不是一项十分高深的技术,但要做一个强大的网络蜘蛛,却非易事。在目前磁盘容量已经不是瓶颈的时候,搜索引擎一直在扩大自己的网页数量。最大的搜索引擎Google( http://www.google.com)从2002年的10亿网页增加到现在近40亿网页;最近雅虎搜索引擎( http://search.yahoo.com/)号称收录了45亿个网页;国内的中文搜索引擎百度( http://www.baidu.com)的中文页面从两年前的七千万页增加到了现在的两亿多。据估计,整个互联网的网页数达到100多亿,而且每年还在快速增长。因此一个优秀的搜索引擎,需要不断的优化网络蜘蛛的算法,提升其性能。

或许有些人有疑问,为何搜索引擎需要用网络蜘蛛抓取网站所有的网页,为什么不在搜索者输入关键词后只把那些需要的结果抓取过来?这实际上是效率问题,搜索引擎不可能在搜索时实时去检查每个网页,而是需要把网页先抓取下来,按照关键词建立好索引,每次搜索的结果都会直接从搜索引擎建立好索引的数据库中查找,然后把结果返回给访问者。关于搜索引擎系统架构方面的知识, 本文主要介绍网络蜘蛛的相关技术。


网络蜘蛛基本原理

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

对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有许多网页无法从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,如果按照每个页面的平均大小为20K计算(包含图片),100亿网页的容量是100×2000G字节,即使能够存储,下载也存在问题(按照一台机器每秒下载20K计算,需要340台机器不停的下载一年时间,才能把所有网页下载完毕)。同时,由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。

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

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

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


网站与网络蜘蛛

网络蜘蛛需要抓取网页,不同于一般的访问,如果控制不好,则会引起网站服务器负担过重。今年4月,淘宝网( http://www.taobao.com)就因为雅虎搜索引擎的网络蜘蛛抓取其数据引起淘宝网服务器的不稳定。网站是否就无法和网络蜘蛛交流呢?其实不然,有多种方法可以让网站和网络蜘蛛进行交流。一方面让网站管理员了解网络蜘蛛都来自哪儿,做了些什么,另一方面也告诉网络蜘蛛哪些网页不应该抓取,哪些网页应该更新。

每个网络蜘蛛都有自己的名字,在抓取网页的时候,都会向网站标明自己的身份。网络蜘蛛在抓取网页的时候会发送一个请求,这个请求中就有一个字段为User-agent,用于标识此网络蜘蛛的身份。例如Google网络蜘蛛的标识为GoogleBot,Baidu网络蜘蛛的标识为BaiDuSpider,Yahoo网络蜘蛛的标识为Inktomi Slurp。如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的网络蜘蛛过来过,什么时候过来的,以及读了多少数据等等。如果网站管理员发现某个蜘蛛有问题,就通过其标识来和其所有者联系。

网络蜘蛛进入一个网站,一般会访问一个特殊的文本文件Robots.txt,这个文件一般放在网站服务器的根目录下,如: http://www.blogchina.com/robots.txt。网站管理员可以通过robots.txt来定义哪些目录网络蜘蛛不能访问,或者哪些目录对于某些特定的网络蜘蛛不能访问。例如有些网站的可执行文件目录和临时文件目录不希望被搜索引擎搜索到,那么网站管理员就可以把这些目录定义为拒绝访问目录。Robots.txt语法很简单,例如如果对目录没有任何限制,可以用以下两行来描述: User-agent: * Disallow:

当然,Robots.txt只是一个协议,如果网络蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止网络蜘蛛对于某些页面的访问,但一般的网络蜘蛛都会遵循这些协议,而且网站管理员还可以通过其它方式来拒绝网络蜘蛛对某些网页的抓取。

网络蜘蛛在下载网页的时候,会去识别网页的HTML代码,在其代码的部分,会有META标识。通过这些标识,可以告诉网络蜘蛛本网页是否需要被抓取,还可以告诉网络蜘蛛本网页中的链接是否需要被继续跟踪。例如:表示本网页不需要被抓取,但是网页内的链接需要被跟踪。

现在一般的网站都希望搜索引擎能更全面的抓取自己网站的网页,因为这样可以让更多的访问者能通过搜索引擎找到此网站。为了让本网站的网页更全面被抓取到,网站管理员可以建立一个网站地图,即Site Map。许多网络蜘蛛会把sitemap.htm文件作为一个网站网页爬取的入口,网站管理员可以把网站内部所有网页的链接放在这个文件里面,那么网络蜘蛛可以很方便的把整个网站抓取下来,避免遗漏某些网页,也会减小对网站服务器的负担。


内容提取

搜索引擎建立网页索引,处理的对象是文本文件。对于网络蜘蛛来说,抓取下来网页包括各种格式,包括html、图片、doc、pdf、多媒体、动态网页及其它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网络蜘蛛正确跟踪其它链接有一定影响。

对于doc、pdf等文档,这种由专业厂商提供的软件生成的文档,厂商都会提供相应的文本提取接口。网络蜘蛛只需要调用这些插件的接口,就可以轻松的提取文档中的文本信息和文件其它相关的信息。

HTML等文档不一样,HTML有一套自己的语法,通过不同的命令标识符来表示不同的字体、颜色、位置等版式,如:、、等,提取文本信息时需要把这些标识符都过滤掉。过滤标识符并非难事,因为这些标识符都有一定的规则,只要按照不同的标识符取得相应的信息即可。但在识别这些信息的时候,需要同步记录许多版式信息,例如文字的字体大小、是否是标题、是否是加粗显示、是否是页面的关键词等,这些信息有助于计算单词在网页中的重要程度。同时,对于HTML网页来说,除了标题和正文以外,会有许多广告链接以及公共的频道链接,这些链接和文本正文一点关系也没有,在提取网页内容的时候,也需要过滤这些无用的链接。例如某个网站有“产品介绍”频道,因为导航条在网站内每个网页都有,若不过滤导航条链接,在搜索“产品介绍”的时候,则网站内每个网页都会搜索到,无疑会带来大量垃圾信息。过滤这些无效链接需要统计大量的网页结构规律,抽取一些共性,统一过滤;对于一些重要而结果特殊的网站,还需要个别处理。这就需要网络蜘蛛的设计有一定的扩展性。

对于多媒体、图片等文件,一般是通过链接的锚文本(即,链接文本)和相关的文件注释来判断这些文件的内容。例如有一个链接文字为“张曼玉照片”,其链接指向一张bmp格式的图片,那么网络蜘蛛就知道这张图片的内容是“张曼玉的照片”。这样,在搜索“张曼玉”和“照片”的时候都能让搜索引擎找到这张图片。另外,许多多媒体文件中有文件属性,考虑这些属性也可以更好的了解文件的内容。

动态网页一直是网络蜘蛛面临的难题。所谓动态网页,是相对于静态网页而言,是由程序自动生成的页面,这样的好处是可以快速统一更改网页风格,也可以减少网页所占服务器的空间,但同样给网络蜘蛛的抓取带来一些麻烦。由于开发语言不断的增多,动态网页的类型也越来越多,如:asp、jsp、php等。这些类型的网页对于网络蜘蛛来说,可能还稍微容易一些。网络蜘蛛比较难于处理的是一些脚本语言(如VBScript和javascript)生成的网页,如果要完善的处理好这些网页,网络蜘蛛需要有自己的脚本解释程序。对于许多数据是放在数据库的网站,需要通过本网站的数据库搜索才能获得信息,这些给网络蜘蛛的抓取带来很大的困难。对于这类网站,如果网站设计者希望这些数据能被搜索引擎搜索,则需要提供一种可以遍历整个数据库内容的方法。

对于网页内容的提取,一直是网络蜘蛛中重要的技术。整个系统一般采用插件的形式,通过一个插件管理服务程序,遇到不同格式的网页采用不同的插件处理。这种方式的好处在于扩充性好,以后每发现一种新的类型,就可以把其处理方式做成一个插件补充到插件管理服务程序之中。

更新周期

由于网站的内容经常在变化,因此网络蜘蛛也需不断的更新其抓取网页的内容,这就需要网络蜘蛛按照一定的周期去扫描网站,查看哪些页面是需要更新的页面,哪些页面是新增页面,哪些页面是已经过期的死链接。

搜索引擎的更新周期对搜索引擎搜索的查全率有很大影响。如果更新周期太长,则总会有一部分新生成的网页搜索不到;周期过短,技术实现会有一定难度,而且会对带宽、服务器的资源都有浪费。搜索引擎的网络蜘蛛并不是所有的网站都采用同一个周期进行更新,对于一些重要的更新量大的网站,更新的周期短,如有些新闻网站,几个小时就更新一次;相反对于一些不重要的网站,更新的周期就长,可能一两个月才更新一次。

一般来说,网络蜘蛛在更新网站内容的时候,不用把网站网页重新抓取一遍,对于大部分的网页,只需要判断网页的属性(主要是日期),把得到的属性和上次抓取的属性相比较,如果一样则不用更新。


结论

网络蜘蛛在搜索引擎中占有重要位置,对搜索引擎的查全、查准都有影响,决定了搜索引擎数据容量的大小,而且网络蜘蛛的好坏直接影响搜索结果页中的死链接(即链接所指向的网页已经不存在)的个数。目前如何发现更多的网页、如何正确提取网页内容、如果下载动态网页、如何提供抓取速度、如何识别网站内内容相同的网页等都是网络蜘蛛需要进一步改进的问题。

分享到:
评论

相关推荐

    搜索引擎蜘蛛捕捉php版

    搜索引擎派出“蜘蛛”程序检索现有网站一定IP地址范围内的新网站,而对现有网站的更新则根据该网站的等级不同有快慢之分。一般来说,网站网页等级越高,更新的频率就越快。搜索引擎的“蜘蛛”同一天会对某些网站或...

    余志国搜索引擎蜘蛛来访记录系统asp版v2.0

    由于搜索引擎抓取网页不抓取JS代码,所以JS的统计方式不能统计到蜘蛛(经测试只能统计到腾讯soso),所以本系统只适合动态ASP网站使用,静态网站请飘过。 2009.8.25 新增排序功能,可以按蜘蛛名称、IP

    织梦网站蜘蛛爬行痕迹记录插件-支持各类搜索引擎

    织梦网站蜘蛛爬行痕迹记录插件最新版,此款插件支持各类搜索引擎及织梦静态动态伪静态,插件功能齐全,可查看到蜘蛛爬行记录,支持删除。 1、无需利用三方工具查看爬行记录,方便快捷省事。 2、插件安装简单快捷,...

    余志国搜索引擎蜘蛛来访记录系统 v2.0.rar

    该程序采用ASP编写,使用Access数据库,主要功能是记录常用搜索引擎蜘蛛最近来访时间、IP、来访次数、抓取页面地址。 经过2周的亲自测试,截至2009.8.30,本系统可统计95种蜘蛛。由于搜索引擎抓取网页不抓取JS代码...

    最全的搜索引擎蜘蛛IP地址

    最新最全的google、百度、163,、msn 、QQ、sina 等等搜索引擎蜘蛛IP地址

    搜索引擎蜘蛛捕捉测试正常版本

    蜘蛛爬行报告提供蜘蛛的以下数据:来访时间、蜘蛛类型、来访IP等众多信息。当然蜘蛛也会有好坏之分,如Google,Baidu等蜘蛛当然...不同的搜索引擎派出“蜘蜘”的周期也不一样!你想详细知道它们的足迹吗?赶快来试试吧!

    搜索引擎蜘蛛ip打包包含:360,bing,百度,谷歌,神马,搜狗,头条,网站白名单ip

    搜索引擎蜘蛛ip打包包含:360,bing,百度,谷歌,神马,搜狗,头条,网站白名单ip

    百度、google等搜索引擎蜘蛛监控

    5、日志分析,详细记录每个蜘蛛访问某网页的具体信息,方便统计每个蜘蛛每天来访次数,并能批量提取每个蜘蛛的来访IP; 6、每次修改后,您无需重启IIS,直接应用即可加载新的设置。 二、基本介绍: 发布版本:...

    搜素引擎蜘蛛IP.xlsx

    搜素引擎蜘蛛IP.xlsx

    余志国搜索引擎蜘蛛来访记录系统 2.0.rar

    该程序采用ASP编写,使用Access数据库,主要功能是记录常用搜索引擎蜘蛛最近来访时间、IP、来访次数、抓取页面地址。 经过2周的亲自测试,截至2009.8.30,本系统可统计95种蜘蛛。由于搜索引擎抓取网页不抓取JS代码...

    58天搜索引擎蜘蛛爬行记录插件v1.0

    8天搜索引擎蜘蛛爬行访问记录日志插件,是一款可以实时监控搜索引擎蜘蛛爬行的网站系统插件。采用ASP+ACCESS开发,程序简洁绿色免费使用。具备大量蜘蛛标识数据库,可识别目前常见的搜索引擎蜘蛛ID。程序具备支持...

    蜘蛛ip总结

    蜘蛛是搜索引擎获得页面内容的一个重要的途径,通过蜘蛛的抓取可以得到一个页面的最主要的内容从而收录百度数据库系统,每次抓取之后都会再与数据库原有的信息进行比对,来确定页面的总体质量。

    网站蜘蛛记录器 v1.3

    主要功能是记录各大搜索引擎对网站采集情况.实时记录百度,谷歌蜘蛛的爬行轨迹,分析.达到更好的优化网站的目的。程序模块:系统首页:管理员登陆后台首页,显示系统的常见信息系统配置:对程序的重要数据进行配置蜘蛛...

    稀有的、完整的网络蜘蛛、爬虫源代码~~~!

    可笑的人,可笑的世界,一个自由的网络被勒上了无形的缰绳,网络上哪些免费的、有价值的资源正被搜索引擎“淡”化,包括谷沟(早先一睹古够地图后就下了结论:互联网摧毁一切!),不是吗?看看全世界的墙,从太极看...

    站长专用IIS日志蜘蛛IP标记JS脚本

    搜集了网友提供的各种搜索引擎蜘蛛IP段,配合html网页使用,请以JS调用的形式放置在源代码的</body></html>之间,然后利用Fontpage、Dreamweaver或者KompoZer之类的工具,在常规编辑模式下将IIS日志内容...

    wordpress SEO蜘蛛访问统计插件 v1.0

    对于站长来说查看搜索引擎蜘蛛抓取的频率了解蜘蛛抓取的深度,能够快速了解搜索引擎抓取问题,从而更快的优化网站,而对于站长来说每天去查看网站日志肯定会很麻烦,所以这款wordpress插件就能解决wordpress站长优化...

    E桶金行业搜索引擎系统(包含多线程客户端蜘蛛系统) V1.6.rar

    1.提供两种蜘蛛客户端索引和网站索引进行合并的策略。(重要) 2.优化编码识别规则,大幅件减少搜索日志乱码现象。(重要) 3.后台可批量删除某一域名下的所有搜引文件的功能!(重要) 4.可过滤某一ip的搜索记录,...

    TK日志精灵 - 一款用于windows服务器环境下iis网站日志蜘蛛分析小工具

    支持批量对日志文件进行解读并对各类搜索引擎访问记录、异常状态码相关访问记录等seo关键信息加以标记,并可以作为条件针对性的筛选出有问题的页面,以及蜘蛛访问轨迹,可以分析网站日志统计出各类蜘蛛访问频次及...

    wordpress SEO蜘蛛访问统计插件.zip

    对于站长来说查看搜索引擎蜘蛛抓取的频率了解蜘蛛抓取的深度,能够快速了解搜索引擎抓取问题,从而更快的优化网站,而对于站长来说每天去查看网站日志肯定会很麻烦,所以这款wordpress插件就能解决wordpress站长优化...

    PHP 蜘蛛访问统计

    本软件用户监控和管理访问整台服务器网站的所有搜索引擎蜘蛛,并对其访问的信息做详细记录,不管您是IDC还是个人站长,这款免费的软件都适合与您。 一、软件主要功能介绍: 1、对访问整台服务器所有网站的蜘蛛进行...

Global site tag (gtag.js) - Google Analytics