简析搜索引擎的网络爬虫技术2700字|什么是网络爬虫技术

简析搜索引擎的网络爬虫技术2700字

简析搜索引擎的网络爬虫技术2700字 简析搜索引擎的网络爬虫技术 1 网络爬虫技术 网络爬虫也称为“文档抽取系统”,是构成第三代搜索引擎系统的重要组成 部分之一,主要由文档适配器与信息爬行器组成,文档适配器能够处理不同类型 的文档,信息爬行器主要进行页面信息的收集工作,文档抽取子系统首先根据配 置文件的约定,定时产生信息爬行器对分布在网络上的信息节点进行遍历,然后 调用对应的文档适配器来抽取网络文档信息。文档适配器能够抽取的页面文件种 类繁多,能够对各种类型的文档以及多媒体文本信息等。信息爬行器为程序的一 个进程或线程,通常采用并发工作方式,以便能可能多、周期尽可能短地搜集网 络节点的页面信息,同时还要避免死链接或无效链接。信息爬行器一般采用分布 式并行计算技术来提高工作的广度与速度。

2 图的遍历算法 网络爬虫在网络中执行信息收集的过程实际上就是一种图的遍历。图的遍历 算法通常有两种方式:即广度优先算法与深度优先算法。下面就具体介绍一下两 种算法。

深度优先搜索算法在展开页面链接时总是从栈顶进行展开,因此随着时间的 增加,栈的深度也在不断增加,位于底部的元素可能会长时间不能进行处理,从 而造成该算法陷入一个大的页面而不能继续展开遍历。为了避免这一问题,可以 采用广度优先搜索算法,广度优先搜索算法是通过队列这种数据结构进行展开的, 根据各个元素节点距离最初节点的层次对所有的网络节点进行遍历,从而对每个 节点都能够在访问全网一次的时间内进行公平处理,克服了深度优先算法陷入局 部节点的不足,也保证了不会漏掉队列后面的的元素,从而达到了公平对待互联 网上所有节点资源的目的。

在广度优先算法中,根据是否已经对节点进行访问,将爬行队列构造为两部 分:即待爬行队列与已爬行队列。待爬行队列主要存储需要进行访问的元素节点URL,而URL在队列中的先后顺序则体现了算法的爬行策略。而已爬行队列则主要 存储已经访问过的URL,由于该队列的长度随着时间的增加不断增长,因此需要 优化该队列的插入与查询操作;
在网络爬虫的爬行过程中,不论是带爬行队列还 是已爬行队列,都需要频繁进行插入与查询操作。因此,该队列数据结构的性能 会直接影响搜索引擎的搜集性能。

对爬行器来说,网页的采集与解析是核心工作。而爬行程序是否高效,主要 取决于网页采集的效率。其过程分为5个步骤:
1)将待爬行队列的第一个元素取出;

2)访问DNS服务器,对URL进行域名解析;

3)根据ROBOT网络协议,获取该URL服务器的权限;

4)若得到访问权限,则对服务器发出URL请求;

5)通过HTTP协议进行访问。

网络爬虫在工作时,若频繁访问DNS服务器,可能会造成比较繁重的网络负 担,引起服务器响应以及网络延迟,会降低爬行程序的效率。因此,通常在本地 服务器上建立一个DNS缓存来降低对DNS服务器的访问频率。同时,为了提高爬行 程序的效率,通常采用多线程或者多进程来对网页采集程序进行流水线处理,多 线程与多进程程序设计相对比较复杂,需要解决的问题主要是进程的同步和互 斥;
也就是解决多个 线程或进程共享资源的问题。造成死锁的情况通常是占有一个资源然后又 请求另一资源,因此,若系统只存在一个共享资源就不会造成会死锁。为了解决 饿死问题,通常只采用一个等待对列,若待爬行队列处于使用状态,则将要访问 该队列的线程插入等待队列。而队列的特点能够保证了所有的等待线程都公平对 待,从而解决了饿死问题。具体算法如下:
1)对爬行队列上锁。若爬行队列已经上锁,则将该线程或进程插入等待对 列。

2)取出待爬行队列的URL元素。

3)对爬行队列解锁,然后唤醒下一个进程或线程。4)访问页面,将页面中的URL进行解析。

5)对爬行队列上锁。如爬行队列已上锁,则插入等待对列。

6)将步骤4)得到的URL插入对列。

7)对爬行队列解锁,唤醒下一个进程或线程。

8)重复1)——7)直到结束。

3 页面解析 在解决了互联网节点页面遍历的问题后,网络爬虫剩下的工作就是页面解析, 页面解析主要是分析与理解HTML(超文本标记语言)文档。HTML作为一种标记语 言,能够对互联网节点的页面外观进行标准化处理,从而规范互联网节点页面的 外观与功能。实际上,超文本标记语言就是以普通文本为基础,通过增加各种表 现样式以及字体、颜色标签来实现文档的规范化。通常各种标签都用双箭头进行 标识,而文本信息则位于之间。图2为一个典型的超文本标记语言文档。

在超文本标记语言中,能够表达连接的标签通常是anchor标签,即通过…进 行标识的标签,长用来表达URL的超链接。各种页面通过该标签,将个节点相互 独立的网页进行链接,从而构成了一种页面连接图的结构。解析HTML的文档包括 两个步骤:
1)对表单进行识别解析,然后填写该表单提交请求,在收到返回结果后, 从结果中提取锚文本以及URL;

2)把超文本标记语言变换为纯文本。

在解析页面的过程中,首先需要获取标签对之间的纯文本信息(锚文本)与 该文本标签的URL地址,然后将HTML文档中的标签进行消除。这些工作都是字符 串的处理工作,处理步骤如下:
1)使用HTML分析工具清洗页面文档,使之转变成全部标准化的超文本标记 语言页面;

2)通过字符串处理工具解析HTML网页;

3)将结果进行输出。

通过以上解析过程,将URL信息从页面中抽取出来,然后进行评价,再放入爬行队列进行处理。

4 结束语 本文主要介绍了搜索引擎的网络爬虫技术,该技术是构成现代搜索引擎系统 的重要组成部分之一,文章详细研究图的遍历算法的两种方式:即广度优先算法 与深度优先算法。在解决了互联网节点页面遍历的问题后,对网络爬虫中的重要 工作——页面解析进行了具体的分析。