网络蜘蛛

来自站长百科
(重定向自机器人
跳转至: 导航、​ 搜索

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

网络蜘蛛就是一个爬行程序,一个抓取网页的程序。网络蜘蛛与搜索引擎有着比较密切的关系,目前全球知名的搜索引擎google百度雅虎等都为各自开发了网络蜘蛛程序。

Google为了获取上亿的网页,设计了一个分布式的爬行系统。一个URL服务器将URL列表提供给网络爬行器。每个爬行器同时保持大约300个网络连接。在最高速度的时候,通过4个爬行器,该系统可以每秒种获取超过100个网页。

影响爬行速度的一个重要因素是DNS查询,为此每个爬行器都要维护一个自己的DNS缓冲。这样每个连接都处于不同的状态,包括DNS查询、连到主机、发送请求、得到响应。这些因素综合起来使得爬行器变成一个非常复杂的系统。它通过异步输入/输出来管理事件,通过一定数量的队列来管理获取网页过程中的状态迁移。

抓取网页的策略[ ]

在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先。

网络蜘蛛抓取策略

广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。

深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。

两种策略的区别:

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

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

更新周期[ ]

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

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

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

相关条目[ ]

参考来源[ ]