标题 | 爬虫技术综述 |
范文 | 冯俐 摘要:文章从介绍一般爬虫的逻辑结构开始,分类综述了发展历史中出现不同协作方式的顺序、并行和分布式爬虫,通用爬虫、深度爬虫以及增量爬虫等特殊分类的爬虫,着重介绍了主题爬虫的原理和相关策略,优势、应用和问题,最后提出主题爬虫未来的研究方向。 关键词:广域网分布式;Web爬虫;主题爬虫;知识主体 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)27-0213-02 Abstract: This article begins from the introduction of the logical structure of general crawler, reviews the different coordination modes of sequential, parallel and distributed crawler development history, general reptiles, Deep reptiles and incremental reptiles and other special classification of reptiles, focusing on the principles of the topical crawler and related strategies, advantages, applications and problems, and finally proposed the future research direction of the crawler. Key words: Wan distributed Web crawler; topical crawler; knowledge subject 纵观爬虫技术的发展,实质是从一个简单的自动下载网络资源的程序,逐步发展到实现广域网范围内分布式协同的深度挖掘的精细分析方案。 1 爬虫结构 从斯坦福大学设计了爬虫系统的几个基本模块开始,早期的爬虫结构由四个部分组成:网页下载模块、内容分析模块、URL地址去重以及URL地址分配[1]。经过下载模块中host控制和DNS解析后,得到的网页再由网页分析模块进行预处理和信息抽取,URL分配模块解决划分URL策略和性能优化问题;在爬取的过程中,URL地址去重考虑消除重复链接。这个早期的爬虫结构也是爬虫程序的基本逻辑,也是顺序爬虫的原型。 2 爬虫协作方式的发展 周中华等人提出了一种并行架构的网络爬虫,专门用于新浪微博的数据采集[2]。这种并行爬虫采用一主多从模式。主节点负责整体的抓取队列和任务分配,各个从节点仅负责按任务队列抓取数据,抓取过程中获得的新队列则传回给主节点进行管理和分配。并行架构是指多个从节点并行抓取数据的结构。与串行爬虫相比,并行爬虫对爬取节点进行了角色的分工。周中华等人的实验证明了并行结构爬虫的运行速度和加速比更优于串行爬虫。 随着互联网的飞速发展,多机并行处理网页内容爬取和链接的尝试越来越流行。有学者提出了广域网分布式web爬虫。与上面介绍的并行爬虫相比,广域网分布式web爬虫都采用了并行计算的方式,更有进步的是,融合了分布式系统的主题。由分布在广域网中不同的地址位置和网络位置的代理节点共同完成并行计算的任务[3]。代理节点之间的协同可由调度中心完成,或摒弃调度中心采用基于DHT的代理节点自主实现,或两种方式相结合。整个过程中web划分、代理节点协同和代理节点部署是核心问题。广域网分布式web爬虫的评价标准,也从评价传统爬虫的指标(覆盖率、重复率、网页质量、运行速度等),扩大到涵盖更多评价方面的新指标:以下载速率和网络延迟为参数的节点与资源的距离,体现划分策略的优劣性;在抓取过程中,由代理之间交换跨分区链接的所产生的通信数量与总共抓取的页面数相比计算出来的总通信量;以及当系统中代理不断增加新的线程时,系统的规模和通信量都在不断扩大,代表系统可扩展性的原有线程受影响的程度值。 3 爬虫分类 以上介绍的属于通用的网络爬虫,另外,还有一些针对特定范围的爬虫类型。如增量爬虫、深度爬虫和主题爬虫。 3.1 增量爬虫 增量爬虫是一种只爬取新增添的页面或更改内容的爬虫分类,在前期爬取工作获得本地页面集合,之后增量爬虫的目標就是保持本地页面的及时更新。一般的策略是,根据局部页面变化的规律,在短时间内以不同的频率多次爬取变化的页面。 3.2 深度爬虫 深度爬虫是专门针对深层网页的爬虫。除了能静态获取的页面以外,互联网上还隐藏有表层页面几百倍数量的深层网页,它们隐藏在表单之后,需要通过提取表单才能获得web页面。与其他爬虫相比,深度爬虫增加了一项关键的模块:表单处理模块,其中包括表单的分析、处理和响应等结构,完成自动提取、分析、提交表单的任务。 4 主题爬虫 4.1 主题爬虫的原理和策略 除了改进爬行计算方式可以提高爬虫的运行速率等指标以外,爬行的爬取范围和内容方面也有探索。刘林2004年发表主题爬虫的相关论文中提出,与普通爬虫爬取所有链接不同,主题爬虫的设计思想就是对页面进行过滤,将页面内容与要搜索的主题相比较,达到一定的要求比例才爬取页面的内容[4]。主题爬虫又名聚焦网络爬虫,通过对爬取范围以主题的方式聚焦,提高了爬取的精度,虽然也有页面遗漏的损失,但综合效果还是令人满意。主题爬虫可以在分布式爬虫基础上,着重关注爬取列表与目的主题的相关性。 为达到过滤页面,聚焦爬取主题的目的,研究者们尝试了多种方式,大致可分为几类[5]。一种是基于文字内容的爬行策略,文字内容主要是指网页的文本内容、链接描述和锚文字等等,并以特定的算法计算出优先的爬行列表,放弃一定排名后的爬行队列;一种是基于web超链图评价的爬行策略,它的思想来源于引文分析理论,采用不同的算法计算出网页间超链的“价值”,以此来确定爬行的优先顺序和放弃的页面;一种是基于分类器预测的方法,借用贝叶斯分类器、SVM等分类预测的算法工具,完成对爬取选择的有训练的学习,用以确定优先列表和放弃页面。 4.2 主题爬虫的优势及应用 无论爬虫的协作方式和分类如何不同,主题爬虫虽然在本文中做为一种分类方式来描述,它更应该是一种基础的爬取思路,它应用范围广泛,可以与其他的多种协作方式和类型的爬虫共同发挥作用。目前,基于主题爬虫的专业搜索引擎成为搜索引擎发展的主要趋势之一。另外在舆情监控领域,爬虫也发挥着重大的作用。 4.3 主题爬虫的问题以及发展趋势 主题爬虫工作过程中会出现多种问题。一种问题是,如果单单爬取主题词的页面,会损失掉大量的用近似词描述的网页内容。目前较多的是主题爬虫与知识主体相结合的方式。首先构建领域本体知识库(或专家提供或积累先验数据),获得比较完备的知识描述体系;为本体中的概念赋予权限,能更加准确的计算网页与主题的相关度,结合page rank等算法最终能得到比较满意的爬取結果。还有一种问题是,待爬取的网页内容有多个主题,因为较多的无关主题的存在掩盖了网页中包含相关度高的主题的相关性,导致整个网页的主题相关性计算不准确。有学者提出采用网页分块的方法,穿过网页中不相关的分块到达相关度高的分块。 主题爬虫未来的研究将会围绕如何提高网页相关度计算的准确性,如何降低计算的时空复杂度,以及如何增强爬虫的自适应性几个方面开展。 5 结束语 在爬虫的发展历史中,以上综述的各种爬虫并不一定是按在文中排列先后的时间顺序产生的。文章采用这种排列的原因是方便逻辑阐述。事实上,不同种类爬虫的研究是交叉在各个时间范围的。文章在综述爬虫结构、爬虫分类的基础上,着重介绍了主题爬虫的原理和策略,优势与应用,问题与发展。 参考文献: [1] 周德懋. 高性能网络爬虫研究综述[J]. 计算机科学, 2009,36(8):26-29. [2] 周中华. 基于Python的新浪微博数据爬虫[J]. 计算机应用, 2014,34(11):3131-3134. [3] 许笑. 广域网分布式Web爬虫[J]. 软件学报, 2010,21(5):1067-1082. [4] 刘林, 汪涛, 樊孝忠 .主题爬虫的解决方案[J]. 华南理工大学学报:自然科学版, 2004,21(11):137-141. [5] 刘金红, 陆余良. 主题网络爬虫研究综述[J]. 计算机应用研究, 2007,24(10):26-30. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。