网络爬虫在搜索引擎应用中的问题及对策
2013-04-02马晓娟
马晓娟
(集宁师范学院,内蒙古 乌兰察布 012000)
1 引言
在谈网络爬虫之前,先了解电脑“机器人”,电脑机器人,其本质软件程序,该程序以计算机,网络为依托,无限循环的地执行网络任务.如以网络为依托的搜索引擎程序,在收集信息时,它就像一条爬虫穿梭在网络之中,根据用户所提供的关键字信息,自动筛选重要信息,我们将专门用于搜索资料信息的“机器人”又称为网络爬虫.我们知道,在万网中,网络拓扑结构是由多个节点构成,网络爬虫程序的任务就是,根据用户关键词,得到网页链接,并与之与网页所对应的服务器端相关联,使得用户能够方便,快捷地查到所需的信息.
通常情况下,网络爬虫也叫做网络蜘蛛,其贯穿于网络,其拥有自己的运算规则,自动择取有效信息,提存相关网页.如果用户想要检查自己站点上所保存下的网页链接是否有效,也可采用该技术.
当搜寻网络信息时,搜索引擎往往会执行网络爬虫程序.网络爬虫通过特殊的算法,提取网页中与用户关键字相关的信息,并提取其URL,并与之关联,在搜索过程中,其搜索路径就像是蜘蛛网,爬虫程序在路径检索的过程中,搜集相关信息.
2 网络爬虫分类及其特点
就目前搜索引擎的原理来看,网络爬虫程序分为两种,通用型网络爬虫、聚焦型网络爬虫.
通用型网络爬虫使用的范围相对来说更广泛,比如所Google搜索所采用的搜索引擎.通用型网络爬虫,其爬行于整个网络,所挑选的信息过于繁多,很多都是网络用户不需要的资料,导致了系统资源的浪费.随着网络技术的进步,网络数据的形式也不断的丰富化,网页中的充斥着多媒体数据音频、视频、图片数据,这些数据都包含信息丰富,而且结构复杂,但是我们的通用型网络爬虫往往难以处理这些数据.
聚焦型网络爬虫是对通用型网络爬虫的补充,其侧重于在搜索过程中,最大限度内,收集与用户特定需求想关的网页信息,必要的情况下,能够自动屏蔽无关的网页数据.聚焦型网络爬虫程序,能够提高用户对特定信息的需求.
3 网络爬虫在搜索引擎中存在问题
网络爬虫在搜索引擎中起到举足轻重的作用,但是目前也存在诸多问题,比如说.
3.1 在单机网络中的性能问题.随着网络时代,信息量的不断增长,海量数据带来的是性能问题,能在极端的时间内,从海量数据中得到用户想要的数据信息,这本身就是对搜索引擎的一种挑战,而网络爬虫程序是搜索引擎的关键之所在,提升网络爬虫程序的相关性能,是当前需要解决的问题.
3.2 网络爬虫程序,一般从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件.在这个过程中,要求数据运行连续下载资源,但是目前来看,网络传输速度较为缓慢,而网络传输过程中CPU资源闲置.
3.3 URL搜索策略问题,需要制定搜索策略的依据在于如何安排URL的访问次序来实现网络爬虫在网络间爬行能有最大的网络覆盖率.
其次是网络爬虫的URL提取问题,即网络爬虫如何在URL下载之后如何从已有的网页数据(专指网页源代码)中获取到新的超联系,以实现的网络爬虫新爬行.再次是网络爬虫的URL规范策略,这一问题的产生主要基于目前很多网页中的超链接结构都不完整,也存在多样化的形式,难以全面规范,因此为了方便网络爬虫能够更加便捷畅通的访问资源数据,完善URL的系统性,必须将所有形式的URL进行统一规范以形成一个覆盖全面的标准.
最后是网络爬虫的URL去重问题.之所以会产生URL的去重问题,是因为互联网本身就是一个结构组成复杂,资源覆盖面广且相互之间存在着复杂的引用关系的一个系统.因此在网络爬虫工作在不同的页面中就会提取到同一个URL,此时网络爬虫就必须在这多重URL中进行去重,选择最适合的一个URL.
3.4 页面资源下载缓慢,网络爬虫程序是从若干个URL链接中提取相关资源,对于相关链接资源,需进行下载定位,页面资源下载缓慢,是当前需要解决的问题.除此之外,目前的网络爬虫技术,只能提取文本内容,但是针对网页页面而言,对于页面元素的提取,最后到网页内容的精确定位,到目前还言,相关研究还很少.
4 对策分析
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.目前,国际网络研究对网络爬虫的研究越来越深入,尽管研究并不是全面彻底,但对分布式网络爬虫的协作分工和文件存储系统效率问题、聚焦网络爬虫的页面相关性算法、PageRank等URL重要度算法等方面研究较为详细,研究资料也较为详实,不足的是对单机网络爬虫的相关性能研究较少.
4.1 页面下载策略
4.1.1 采用gzip/deflate压缩编码传输
伴随信息产业的迅速发展,网络资源类型也多种多样,资源的格式、质量、运行环境也各不相同.针对网页资源而言,大小差距很大,从几百KB到几KB.在一定可靠的网络运行环境下,网络传送时间较长,则证明网络数据分组较大.因此要加速完成数据传输传入过程就要将网络数据的传输量尽量缩减.
有效将网络数据传输量减少的方法之一就是文件数据压缩.gzip它是一个GNU自由软件的文件压缩程序.该压缩法是较为常用的没有任何数据损失的压缩程序算法,应用gzip压缩时,效果最为显著的就是对纯文本文件的gzip压缩,可以将文件大小压缩至原来的75%甚至更多.程序进行gzip压缩后,不仅可以提高网页运行速度,完善用户浏览体验,而且在浏览网页时省去很多流量使用.
gzip压缩编码也可以应用在超文本传输协议上,主要目的是完善并提高网络应用程序的性能.通过gzip压缩流量使用较多的网络站点可以从某种程度上提高用户网页浏览速度.Web服务器中本身都含有gzip压缩功能,因此一旦有用户访问某个网络站点,服务器中的该功能马上将gzip压缩后的网页内容传送到电脑浏览器并显示出来.gzip/deflate压缩编码传输直接缓解了服务器加载大量信息的负载,也提高了用户接收网页传输数据的速率.
万维网中gzip压缩功能的处理过程如下:
(1)http将用户需求发送至web服务器,若用户需求中含有Accept-Encoding类似字符的要求则说明包含gzip压缩页面数据信息,需要提前检查服务器配置是否含有gzip压缩功能.
(2)若服务器含有gzip压缩装置,压缩后会直接显示到浏览器上.
(3)若用户请求文件是静态文件如,html css等,服务器自动检查目录中是否存在最新压缩文件.
(4)若请求的压缩文件没有出现在缓冲目录中,网络服务器将没有压缩的请求文件反馈给用户,同时请求存放在缓冲目录中以便进行压缩.
(5)若最新要进行压缩的文件已经在缓冲目录中了,则要直接进行文件压缩.
(6)若用户请求的文件类型是动态文件,Web服务器动态压缩内容并返回给用户,压缩内容不存放到压缩缓存目录中.
4.1.2 异步非阻塞下载,提升CPU利用率
网络爬虫的工作效率事实上是受到网页数据的影响的,从网络爬虫基于URL要求发出数据请求到页面接收数据并返回这一过程中存在一段时间的间隔,在这一段时间间隔内如果网络爬虫只是等待而不从事其他工作,那么CPU就得不到充分的利用,造成资源闲置,且网络爬虫的工作效率也较为低下.反之,如果网络爬虫能充分利用这一时间间隔从事其他工作,等到数据返回之后再立刻进行分析,那么CPU的资源利用率就会大大提高.这一种机制也就是我们所说的非阻塞异步请求.
4.2 URL相关策略
通常人们所说的URL格式主要由三个部分组成:第一部分是必备部分,为协议部分,一般也成为网络服务方式;第二部分代表的是资源存储的主机TP地址,这一部分也可以用主机名或者是端口号代替,第二部分也是URL格式组成的必备部分;第三部分是资源在主机中存储的具体位置,比如目标资源的文件名、网络参数等等,这一部分并非必要的,有时候可以根据实际情况进行省略.URL相关策略中必须包含以下几个问题和部分:
4.2.1 URL搜索策略
网络爬虫查找和选择页面的工作策略一共有两种:一是采用遍历图的方式进行主题上搜索,遍历顺序一般遵从广度优先或是深度优先的原则;二是坚持“最好优先”原则对某一专题进行智能搜索.
无主题搜索中的广度优先原则是最为普遍的,它的实现原理也是基于互联网的存在,即选择一个网页,然后抓取与之相关的网页,层层递推,从而获取到所有网页.以某HTML的文件为例,该文件共有三个超级链接,网络爬虫在工作中会选择其中之一进行下载和处理,然后再通过关系网处理另外另个连接,在此基础上再接着深层处理相关的URL.广度优先搜索的优势十分明显:
(1)由于广度优先搜索是从浅层次的URL开始处理的,所以无论是结构如何复制的分支,最终都可以实现文档的返回.
(2)广度优先的原则首先处理了位于浅层的高相关性页面,能迅速切全面的发现高质量页面.
(3)广度优先的原则可以实现多个网络爬虫同时合作抓取数据,从站内链接入手再普及到站外链接,能真正做到全面覆盖.
深度优先是网络爬虫早期的工作策略,它的工作原理是在选择一个最浅层选择一个链接,然后深度搜索该连接下的数据,在该链达到尽头以后再返回数据重新选择新的链接起始.循环往复,一直到所有链接都以被操作以后,该次搜索才算结束.
4.2.2 URL提取策略
网络爬虫在工作中向站点请求的是页面数据但是返回是HTML代码.用户在浏览器上查看的到内容事实上就是一系列动态代码和HTML代码执行后的网页化呈现.网络爬虫只有将所有的URL超链接从返回的网页源文件中提取出来才算完成整个爬行过程,才能进行新的爬行.
4.2.3 URL规范策略
网址URL规范化的定义是搜索引擎挑选最好的URL网址作为真正网址的过程,强调的是.选择的唯一的作为规范化的网址.细而言之,当出现多个页面链接都包含相同内容时,导致大量的同类复制内容的网页,则要通过各种方法筛选,只保留标准规范化的唯一网页,而不保留其他网页.从网络爬虫的角度上说,规范化的URE缩减了大量复制内容的网页数据分析,减少URL向服务器请求资源以避免错误率.
(1)超链接网址的各个域名要补充完整.网页中大多数超链接地址没有协议类型或主机名,补充的同时要按照超链接网页的URL进行填补.一般来说,有的网页超链接会省略不保留协议名称或主机名,则说明和母页的域名相同.
(2)将网页存在形式的相对路径转化为绝对路径,通过处理文件路径和参数的方法使URL规范化.在所有互联网页面中,绝大部分超链接网址的存在形式都是相对而言的,即相对路径.当主机名称与主机ip地址一致时,可以把主机名转化为ip地址,或者改变名称中参数顺序,保证同一个主机只能以一种形式出现一次.
5 结束语
网络爬虫技术在网络搜索引擎应用中起到举足轻重的作用,爬虫程序的算法逻辑,URL处理方式,直接影响到页面搜索的反应效率,以及网页库的新鲜度.本文首先分析了网络爬虫在信息搜索过程中面临的技术问题,并以此为依托,针对问题,提出了相关策略,对URL进行严格正规化处理,希望有效降低URL出错率,以及爬虫的误导性,真正发挥网络爬虫技术在搜索引擎中的作用.
〔1〕曹忠,赵文静.一种优化的网络爬虫的设计与实现[J].电脑知识与技术,2008(35).
〔2〕王军,彭建.网络爬虫的结构设计研究[J].科技信息(学术研究),2007(27).
〔3〕贺财平,覃事刚,刘建勋.W eb服务搜索引擎的设计与实现[J].计算机应用与软件,2011(01).
〔4〕刘磊安,符志强.基于 Lucene.net网络爬虫的设计与实现[J].电脑知识与技术,2010(08).
〔5〕何志文,郭利刚.搜索引擎技术在互联网音视频节目监测系统中的应用 [J].广播与电视技术,2009(03).
〔6〕石柯,周利兵,陶文兵.基于移动代理的 MAISE爬虫的设计与实现[J].华中科技大学学报(自然科学版),2005(S1).
〔7〕周巍巍.网络爬虫网页库智能更新策略分析与研究[J].电脑知识与技术,2010(31).