搜索引擎的数据支持者无公害网络爬虫

[不指定 2010/07/18 09:48 | by Sangern ]
搜索引擎是什么呢?
   很多人都会这么回答:
   搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,是为用户提供检索服务的系统。这些是网上定义的搜索引擎的定义。那么我们可以看出来搜索引擎真正的本质是什么呢?这里我们可以肯定的说:搜索引擎是为了为网民提供信息检索服务的系统。
   记得我们开会的时候讨论过一个问题就是,比如说百度,谷歌 都是我们经常使用的搜索引擎,这个说法无可厚非,但是像百度贴吧里面也有一个搜索的工具,类似于站内的搜索工具。那么这个算是搜索引擎么?那么我想很多人的见解都是不一样的,不管你怎么理解这方面的问题都是没有错的。据我个人理解呢我认为只要能为网名提供信息检索服务那么我就可以说他是一个搜索引擎,大家要是有兴趣的话可以去看看有关搜索引擎起源方面的资料。
   这里我就不说搜索引擎的原理了,因为涉及到太多方面的东西了等有时间的时候再细细的说,现在进去今天的主题:

   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,它是搜索引擎的重要组成部分,主要功能是为搜索引擎提供强大的数据支持。
   网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。这些都是理论上的但是这个要得根据环境而定,首先我们的互联网是不断扩大的在每一分每一秒的时间里都会有变化,我敢说百度、谷歌他们没有敢说能把互联网的信息全部抓取的,哈哈。最起码我是这么承认的。
   常见的网络爬虫主要有以下几种:
       Google -> GoogleBot
       Baidu  -> BaiDuSpider
       Yahoo  -> Inktomi Slurp
   现在知道了蜘蛛的具体工作内容,那么我们可以得到这样的一个图解来描述网络爬虫系统的原理。
搜索引擎工作流程
根据这个图我们可以清楚的看到爬虫的具体工作流程。首先是我们给爬虫程序一个url列表,爬虫以这个列表为起点开始抓取网页内容。根据第一个url请求下载网页,等待下载完成后先将原始网页进行处理,并对网页进行分析提取链接,将链接存储到url库里面。将新获取的链接地址存储到一个队列中等待下一次的请求。然后不断的进行循环直到链接完全解析完成或者达到一定的限制的时候才会停止。 网络爬虫是搜索引擎的信息入口模块,通过下载得到的数据通过海量存储的原始网页库提交给后续模块处理。后续模块处理得到链接然后返回给网络爬虫继续下载。网络爬虫并不仅仅是基本的原理算法实现和单机下载系统。真正实用化的爬虫必须利用大量的下载服务器协同完成的。

   那么在爬虫爬去网页的过程中首先要考虑到的问题包括:

   1、url入口的选择

   这里的url入口一般要选择一些对整个互联网影响比较重要的网站。例如新浪、雅虎或者一些导航网站。

   2、域名解析缓存机制和已下载内容的本地代理缓存。

   网络爬虫需要经常访问同一个域名下的网页内容。域名解析内容缓存能存储域名与IP地址的复杂对应关系,减少域名查询次数,大大提高了网络利用率。本地下载内容代理可以避免重复下载,减少一定时期的内对目标站点的多次下载。

   3、合理的选择相应的策略  

   这里的策略就是在爬虫爬去网页的时候对分析出来的链接的处理策略。大体上分为两种。一种是深度优先策略,另外一种是广度优先策略。所谓"深度"是对产生问题的状态结点而言的,"深度优先"是一种控制结点扩展的策略,这种策略是优先扩展深度大的结点,把状态向纵深发展。深度优先搜索也叫做DFS法(Depth First Search)。  广度优先是另一种控制结点扩展的策略,这种策略优先扩展深度小的结点,把问题的状态向横向发展。广度优先搜索法也叫BFS法(Breadth First Search),进行广度优先搜索时需要利用到队列这一数据结构。
   比如举个例说:当对于一个论坛来说我们的策略是选择什么好呢?
首先我们要想论坛是怎样的一种架构,他是一种层叠式的,而且还是根据日期降序排列的,所以我们就会选择广度优先策略。因为搜索引擎都是需要那些新的信息采用广度优先就可以省时省力了。现在的很多搜索引擎都是两种策略都会使用,关键就是什么样的机制决定了这样的策略,这些还正在研究过程中。

   4、下载的网页的存储和管理  

   海量搜索引擎下载的文档数量惊人,需要合理的管理策略和存储策略。  

   5、高效的网页更新、死链判别方法。
   这些都是我们要考虑的关键性问题啊!我也在慢慢的研究其中关键性的因素,我这里只是开个头,希望能给大家一些帮助。

搜索引擎的数据支持者无公害网络爬虫
搜索引擎优化SEO | 引用(0) | 阅读(488)