王超群
网络爬虫技术研究
王超群
江汉大学数学与计算机科学学院,湖北 武汉 430056
在互联网高速发展的今天,各类信息数据呈爆炸式增长,如何在信息繁杂的“大海”中快速并且准确的得到我们所需要的数据,成为了一大难题,并且在互联网加的时代,大数据云计算纷纷崛起,如何获取大量的数据基础,也成为了一大难题,而网络爬虫是解决这些问题最重要的技术,研究将论述网络爬虫的分类、原理以及其应用。
网络爬虫;高效性;深层网络爬虫;信息检索
网络爬虫(外文名Web Crawler),又被称为网页蜘蛛(web Spider),蚂蚁、在FOFA社区中间[1],更经常的称为网页追逐者,它从万维网上获得网页,并通过网页中其他链接在万维网上采集信息资源,是按照一定的人为规则自动识别并抓取万维网信息的程序和脚本。网络爬虫通常从一些精心挑选的种子URL开始“爬行”,将这些URL放入待抓取的URL队列,从待抓取的URL队列中取出URL,解析DNS并且得到主机ip ,并将URL对应的网页下载下来,存储进已下载网页库中。直到遍历Web,这种行为被称为网络爬行(Web Crawler)。
网络爬虫按照系统结构和实现技术,大体上可以分为如下几类:通用爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、深层网络爬虫(Deep Web Crawler)。在实际运用中往往是多种技术的综合运用。
2.1 通用网络爬虫
通用爬虫是从一个或者若干个初始网页开始,爬取全网的网页,所以主要用来作为各大网站的搜索引擎,但是由于商业原因,这些技术细节很少公开,例如Google 、百度等。其主要组成部分大致有URL链接库、文档内容模块、文档解析模块、URL过滤模块,当通用爬虫工作时,它先从预定的若干精选的URL开始,获得初始页面上的URL列表,并且在爬取URL的同时下载该页面,再通过文档解析模块将需要的内容保存到对应的数据库中,并再获得当前页面新的URL,保存到URL链接库中,直到满足停止条件。
通用爬虫因为爬行范围和数量都十分庞大,导致其对爬行速度以及存储的要求都很高,并且由于数量巨大导致待更新的页面也很多,导致这类爬虫每次更新都要花费很多时间,总结起来,其局限性为[2]:(1)由于抓取的是全网页面,导致采集的信息中包含大量用户不需要的信息。(2)通用爬虫大多是针对关键词检索,所以对于语义信息的查询等要求,不易实现。虽然有一定缺陷,但通用网络爬虫在广泛主题下的搜索,还是有较大的使用价值。
2.2 聚焦网络爬虫
聚焦网络爬虫(Focused Crawler),是一种定向抓取有关联的页面的资源的爬虫。聚焦爬虫通过给定的目标,有目的性的访问万维网上相关网页,并且有选择性的抓取网页。聚焦爬虫不像通用爬虫,它会先通过算法,对获得的URL进行分析并过滤掉和目标主题无关的链接,将有用的保留到URL队列中。接着它会从队列中通过定好的策略,找到合适的URL,重复上述过程,直到满足一定条件后停止爬行。因此,聚焦爬虫相比通用爬虫,具有得到信息更精确,效率更高的特点,当然,聚焦爬虫也有其缺陷,如下几个问题:
(1)如何对目标网页进行描述;(2)如何对网页和数据进行分析和过滤;(3)对URL 搜索和排序策略。
2.3 深层网络爬虫(Deep Web Crawler)
网络数据的快速增加,大量数据因此累积而被埋藏,而传统的搜索方式无法搜索到这部分有价值的页面,所以这部分内容对于大部分来说是隐藏的和不可见的,称之为 Deep Web。2000 年 Bright Planet指出[3]:Deep Web中可访问信息容量是由静态页面构成的Surface Web的几百倍,是万维网上数据量最大、发展最快的新型信息资源。实现大规模 Deep Web页面的采集是有效的帮助人们快速、准确地获取并利用 Deep Web的海量信息的一个有效途径。
深层网络爬虫与一般爬虫的相区别的是,深层网络爬虫在下载完成页面后,没有直接将所有URL进行遍历,而是通过特定的算法策略将其进行分类处理,对于不同的类型URL使用不同的算法进行查询参数 ,并将参数二次提交给服务器。如果提交的查询参数正确,才会获得的到隐藏的页面和URL。
因为深层网络爬虫的访问是用户提交表单查询的,所以想要爬取到深层页面需要面对一下问题[4]:(1)需要设计高效快捷的算法策略,去获取数量庞大的深层Web页面;(2)获取深层页面,需要验证用户提供的表单信息,一旦出错,很难获取页面;(3)要使用一些脚本语言,去支持分析客户端的深层Web页面。
随着信息技术的高速发展,信息化社会逐步走向大数据时代,大数据的最显著的特点是数据量大、数据形式复杂、数据处理速度快和数据价值高这四个方面,因为万维网成为了一个巨大的数据库,所以如何从海量数据库中采集和提取数据是我们面临的挑战。而网络爬虫的出现为解决这个难题做出了巨大贡献。网络爬虫在 Web 信息搜索与数据挖掘中的应用[5],极大地提高了Web信息的采掘质量,为整个搜索与挖掘系统奠定坚实的基础;在档案信息采集中的应用[6],为从海量信息中采集和提取与档案资源建设相关信息提供巨大方便;在社交网络中,为研究用户偏好,然后为每个用户制定个性化方案及趋向预测提供巨大帮助。
研究对网络爬虫的定义以及原理进行介绍,并且对主流的多种爬虫进行了分析,阐述其优缺点,并结合互联网加下,最为热门的大数据的应用,阐述了网络爬虫的应用场景,随着人们对信息的需求不断加深,对网络爬虫的研究也会更加深入,网络爬虫也会走向更加智能化、高效化。
[1]Downes,S.Semantic networks and social network ks[J].The Learning Organization,2005,12(5);411-417.
[2]孙立伟,何国辉,吴礼发.网络爬虫技术的研究[J].电脑知识与技术,2010,6(15):4112-4115.
[3]M K.Bergman.The Deep Web:Surfaceing Hidden Value[EB/OL].http://www.completeplanet.com/Tutorials/DeepWeb,2000.
[4]王舜燕,李蕾,吴兵华.基于ID3分类算法的深度网络爬虫设计[J].现代图书情报技术,2008(6):41-45.
[5]杨定中.网络爬虫在web信息搜索与数据挖掘中应用[J].计算机工程与设计,2009,30(24)12.
[6]杨文刚,韩海涛.大数据背景下基于主题网络爬虫的档案信息采集[J].兰台世界,2015(20):20-21.
Research on Web Crawler Technology
Wang Chaoqun
School of mathematics and computer science,Jianghan University,Wuhan,Hubei 430056
The rapid development of the Internet today,all kinds of information and data was explosive growth,how to in the complex information from the "sea" fast and accurately get we need data,has become a big problem,and in the Internet era,the big data cloud computing numerous rise,how to obtain a lot of data base,has also become a major problem,and web crawler is to solve these problems the most important technology.This paper discusses the web crawler's classification,the principle as well as its application.
web crawler;high efficiency;deep web crawler;information retrieval
TP393.09
A
1009-6434(2016)6-0181-02