网络蜘蛛即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider便是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从 网站某一个页面(通常是首页)开始,读取网页的信息,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样子一直循环下去,直到把这样的网 站所有的网页都抓取完为止。假如把整个互联网当成一个网站,那么网络蜘蛛就可以用这样的原理把互联网上所有的网页都抓取下来。
相对搜索引擎来说,要抓取互联网上所有的网页差不多是不可能的,从现在公布的数据来讲,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这 其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有很多网页无法从其它网页的链接中找到;另一个原因是存储技术和处置技术的问题,假如依照每个页 面的平均大小为20K计算(包含图片),100亿网页的容量是100×2000G字节,即使可以存储,下载也存在问题(依照一台机器每秒下载20K计算, 必须要340台机器不停的下载一年時间,才能把所有网页下载完毕)。同时,由于数据量太大,在提供搜索时也会有效率方面的决定。因此,很多搜索引擎的网络蜘 蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。
在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先(如下图所示)。
广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中 的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方法,由于这样的方法可以让网络蜘蛛并行处置,提高其抓取速度。深度优先是指网络蜘蛛会从 起始页开始,一个链接一个链接跟踪下去,处置完这条线路之后再转入下一个起始页,继续跟踪链接。这样的方法有个优点是网络蜘蛛在设计的时候比较简单。两种策 略的差异,下图的表明会更加明确。
由于不可能抓取所有的网页,有一些网络蜘蛛对一部分不太重要的网站,设置了浏览的层数。例如,在上图中,A为起始网页,属于0层,B、C、D、E、F属于第1 层,G、H属于第2层,I属于第3层。假如网络蜘蛛设置的浏览层数为2的话,网页I是不可能被浏览到的。这也让有一些网站上一部分网页可以在搜索引擎上搜索 到,另外一部分不能被搜索到。相对网站制作者来说,扁平化的网站结构设计有助于搜索引擎抓取其越来越多的网页。
网络蜘蛛在浏览网站网页的时候,经常会遇到加密数据和网页权限的问题,有一些网页是必须要会员权限才能浏览。当然,网站的所有者可以通过协议让网络蜘蛛不去抓 取(下小节会介绍),但相对一部分销售报告的网站,他们希望搜索引擎能搜索到他们的报告,但又不能完全免费的让搜索者查看,这样子就必须要给网络蜘蛛提供相应的 顾客名和密码。网络蜘蛛可以通过所给的权限对这些网页开展网页抓取,从而提供搜索。而当搜索者点击查看该网页的时候,一样必须要搜索者提供相应的权限验证。
热点文章
最新文章