舆情监测系统中信息采集模块的设计与实现
来源:飒榕旅游知识分享网
第29卷第2期 南华大学学报(自然科学版) V0I.29 No.2 2015年6月 Journal of University of South China(Science and Technology) Jun.2015 文章编号:1673—0062(2015)02—0102—06 舆情监测系统中信息采集模块的设计与实现 刘志明.王琨 (南华大学计算机科学与技术学院,湖南衡阳421001) 摘要:网络舆情已经成为反映当今社会舆情重要组成部分,具有传播速度快、信息 多元化等特点.建立舆情检测系统能够对大规模网络数据进行采集、挖掘和分析,对 网络舆情热点话题进行及时的发现和追踪,为各单位和组织应对舆情危机提供科学、 系统的支持.通过对网络爬虫搜索策略、大规模URL去重、页面识别等技术的研究和 改进,实现一个高效、快捷的网络爬虫系统. 关键词:舆情监测;信息采集;网络爬虫;搜索策略 中图分类号 ̄TP393 文献标识码:B Design and Implementation of Information Collection Module in the Monitoring System of Public Opinion LIU Zhi-ming,WANG Kun (School of Computer Science and Technology,University of South China,Hengyang,Hunan 421001,China) Abstract:In today’S society,with the features of rapid propagation speed and information diversiifed,etc.,Internet has become an important way for public to show their opinions. Thus a system which can acquire,mine and analyze public opinion,timely find and track hot topics on internet will provide great support to institutions and organizations when re— spond to public opinion crisis.The improvement on web crawler search strategy,URL du— plication removal tech and webpage recognition tech will realize it. key words:public opinion monitoring;information abstraction;crawler;search strategy 0引言 茗  ̄网普及6. 18 4L篙蓑 截止2013年12月,根据中国互联网络信息中 2012年底提升3.7个百分点,其中10—19岁年龄 心(CNNIC)发布的《第32次中国互联网络发展状 段上网人数所占比例为21.1%.从以上数据来看, 收稿日期:2014—11一o9 作者简介:刘志明(1972一),男,湖南浏阳人,南华大学计算机科学与技术学院教授,博士.主要研究方向:大数据检 索与挖掘、高可信计算、核设施三维仿真等. 第29卷第2期 刘志明等:舆情监测系统中信息采集模块的设计与实现 103 在我国中小学生年龄段上网人数占取很大比例,而 且还成递增趋势在不断发展过程中. 网络舆睛是指在互联网上流行的对社会问题 不同看法的网络舆论,是社会舆论的一种表现形 式,是通过互联网传播的公众对现实生活中某些热 点、焦点问题所持的有较强影响力、倾向性的言论 和观点¨J.目前在国际上具有很强影响力的舆情监 测系统有美国的话题检测与跟踪系统(Topic De— tection and Tracking),该系统主要用于话题监测与 跟踪相对于信息检索、数据挖掘和信息抽取等自然 语言处理技术_2引.而在国内做的比较成熟的舆情 监测系统有人民网舆情监测室,它已建立起的一套 比较完整的网络舆情监测理论体系,它不仅可以对 传统的网络媒体、新闻跟帖、社区论坛、微博客、SNS 社交网络、个人网站等网络舆情主要载体进行24 小时的监测,还可以进行专业的统计和分析,形成 监测分析研究报告等一系列的成果. 在主题舆情监测系统中,信息采集模块的主 要功能就是利用网络爬虫来收集网络各种网络媒 体的网页信息.通过介绍一种基于C/S三层架构 的网络爬虫的设计及实现,通过解决网络爬虫中 部分主要关键技术,来提高网络爬虫的工作效率. 1国内外研究现状 关于研究舆情监测系统中关于各种网页的信 息采集、网页识别、网页解析算法和网页搜索策 略.在国内外关于网络爬虫的研究可以追溯到20 世纪90年代初期,由于互联网搜索引擎的出现, 就随之产生了网络爬虫的诞生.由于早期的互联 网网络拓扑结果相对简单,互联网中的节点也相 对不多,因此最初的网络爬虫典型的工作方式是 基于互联网拓扑结构的算法进行,即是将整个互 联网看作一个巨大的有向连通图,采用深度优先 和广度优先的搜索算法来对整个互联网上的网页 进行遍历 . 早期的Google搜索引擎所开发的网络爬虫 是由五个处理模块来处理不同的任务.主要运行 过程是由一个URL服务器从存储设备文件上读 取URL列表并将其转发到网络爬虫上,每个网络 爬虫单独运行在不同的服务器当中,采用单线程 异步1O的方式,一次性维持300个连续并行爬行 网页数据.网络爬虫将爬取的网页数据传输到存 储服务器上,并对爬取数据进行压缩后进行保存. 这样的网络爬虫有点就是结构简单,很容易实现, 但是其缺点就是随着互联网的不断发展,网络拓 扑结构也变得十分复杂,因此早期的网络爬虫不 能很好的适应互联网的发展需求.因此Google搜 索引起对其网络爬虫进行改进,主要体现两个方 面:采用了自有的文件系统和数据库系统;采用了 Map Reduce技术来分布式处理各种数据运算.这 样的改进大大的提高了网络爬虫爬取网页的效率 和对爬取网页存储的效率. 面对当前庞大的互联网来说,网络爬虫的研 究主要是针对网页内容重要性的评价分析,出现 众多的主题网络爬虫.在国内主题网络爬虫具有 代表性的有新浪爱问(iAsk)网络爬虫、SOSO搜索 网络爬虫、有道搜索网络爬虫等. 2系统关键性技术 2.1 网络爬虫搜索策略 基于深度优先的抓取策略,这是一种早期网 络爬虫工作策略,它是尽可能在给定的URL后往 最深层的节点进行爬行 J.该爬取策略的缺点就 是爬虫在爬取数据的同时要记录爬取的深度,如 果爬取的数据大部分没有分布在叶子节点上,将 会浪费大量的时间和网络资源,其工作效率也是 比较低下的. 基于广度优先的抓取策略,这种策略也可以 称作为层次遍历策略,是根据提供的URL安装网 站的分布的层次进行逐层数据爬取,因此爬虫的 工作的同时不必要进行记录爬取的深度,只要根 据网站层次的分布逐层深入即可,如图1所示,其 爬行的顺序为:ABCDEFGH.这种爬取策略比较深 度优先策略来说,爬虫可以抓取信息不会出现遗 漏和丢失,同时基于广度优先的策略还能更好的 控制爬虫对网站抓取的范围. 图1基于广度优先的抓取策略 Fig.1 Crawling strategy with breadth-first 2.2大规模URL去重技术分析 舆情监测系统所需要的数据量是非常庞大的, 那就决定了网络爬虫需要从互联网上采集大量网 页.由于互联网本身就是一个由URL组成的巨大 网络,那么对于网络爬虫来说,如何避免采集重复 南华大学学报(自然科学版) 2015年6月 的URL是网络爬虫所需要解决的主要技术之一. 在本系统中主要使用了Bloom Filter算法来 实现对大规模URL去重技术实现.Bloom Filter算 法是由巴顿布隆于1970年提出来的,该算法是一 种基于散列的查找算法.该算法的基本思想就是 当一个元素被加入集合时,通过Ⅳ个Hash函数 对这个元素进行运算,将其映射到一个向量空间 中的K个点,如果这K个点全部为1则说明该元 素已经存在于向量中,否则说明该元素不存在于 向量空间中.Bloom Filter算法不仅解决了普通哈 希查找算法空间复杂度比较大的缺点,同时还保 留了哈希查找算法时间复杂度低的优点.非常适 合大规模数据集合查找方式,对于上亿URL的去 重提供了很不错的解决方案. Bloom Filter算法虽然是一种高效的查找算 法,但是其在判断一个元素是否存在于其中时,可 能会出现误判,把本身不属于该集合的元素认为 属于该集合,因此该算法不适合高要求,零错误率 的场合.本系统在对该算法进行了改进,主要改进 的目的是降低Bloom Filter算法本身所产生的错 误率 j.主要是从哈希函数的数量的确定方面进 行优化,因为如果在计算元素的哈希函数过多时, 所产生的错误率就越高,而计算的哈希函数过少, 那么在向量空间中的0也会过多.因此对Bloom Filter算法所使用的哈希函数个数的确定是可以 影响所产生的错误率的高低.如果需要使得错误 率,最小,就要先确定哈希函数个数k值.可以利 用以下公式进行确定: f= (1一e-kn/m) = (1一p) = = exp(kln(1一e一 )),令g=一 ln(p)ln(1一p). , 所以,当P=1/2时,所产生的错误率是最小的. 以下即是本系统设计的Bloom Filter算法具 体流程: 1)新建一个空的向量空间,将该向量空间的 值全部初始化为0. 2)采集到一个新的URL时,通过设计的多个 哈希函数对URL进行设取模计算,在向量空间中 所产生的散列值进行查询. 3)如果在这些向量中的Ⅳ个位置全部都是 为1,则说明该URL已经存在于向量空间当中,则 转到第二步. 4)如果该URL不存在于向量空间中,就将该 URL所计算的散列值保存到向量空间中,重复第 二步直到所有采集停止. 2.3页面相似度分析 页面相似度是实现网络爬虫的重要技术之 一,特别是主题网络爬虫,需要对采集的网页进行 相似度分析,才能判断出所采集的网页与主题相 似度.当前对于页面相似度技术有多种,在本系统 中采用向量空间模型(VSM)技术,这种方法把网 页简化为向量文档的向量运算,就可以通过计算 向量之间的相似性来衡量两个网页之间的相似 度,对于两个网页中文本之间最常用的相似度量 方式就是计算余弦距离_9。 . 向量空间模型算法实现过程如下所示: 1)预处理,先对网页的所有文本进行中英文 分词,并去掉停用词. 2)对网页中的分词短语的关键词进行选择 与加权,对网页中若干个关键词进行频度的计算. 3)建立向量空间模型、求出其余弦值.对于 建立向量空间模型的方法就是把文档简化为关键 词的权重为分量的Ⅳ维向量来进行表示.对于D, 和D 两个文本来说,要求的之间的相似度 Sier(D ,D ),其余弦公式为: ∑ × Sim(D ,02)=c。s =下车 === —= ^/(∑吮)(∑唬) 其中 和 分别表示D 和D 两个文档第 (1≤ ≤ )个关键字的权值… . 4)如果所求的两个页面文本的余弦值大于 所设定的阈值,那么就说明这两个网页是相似的, 否则说明该个网页与主题并不相似. 3系统设计与实现 网络爬虫程序作为舆情监测系统的重要部分, 其功能就是采集互联网上的网页,为舆情监测系统 提供数据来源.充分利用爬虫对设定的目标站点进 行定期的数据抓取,也可以根据用户的需求制定相 应的爬取任务和策略,实现主题舆情的监控. 3.1 系统需求分析 通过研究主题舆情信息采集系统,提出基于 C/S三层构架的主题网络爬虫系统,来实现对主题 舆情信息的实时、动态、规范的采集,并通过简单的 加工后进行数据的存储,因此提出以下系统需求: 1)根据不同登录用户设计不同的用户权限, 来实现系统提供不同的管理服务,支持对已定义 的策略进行有效的管理. 2)设计被动和主动爬取策略,提出两种爬取 第29卷第2期 刘志明等:舆情监测系统中信息采集模块的设计与实现 策略,既可以实现用户自定义的单一爬取策略,将 用户自定义爬取的数据提交给服务;也可以实现 服务器控制所有客户端爬取特定任务的主动爬取 策略.这样既可以满足用户轻量级的爬取要求,也 3.3系统工作流程 根据上述涉及的系统框架分析所得,结合当 前网络信息资源规模的需求,进行设计了一个基 于多层模式下的信息采集系统,此系统是针对主 可以满足要求较高的爬取任务. 3)建立起基于C/S三层架构体系,能够减轻 服务器爬取数据任务重、速度慢、网络环境要求的 缺陷.充分利用广大互联网各种网络终端资源来 进行数据的爬取,这样无疑可以大大的提高数据 题舆情系统监测系统的实际需求采取了相应的采 集策略,系统工作流程如图3所示. 爬取的效率. 4)建立数据更新、去重等检测机制.将数据 爬取和数据更新、去重进行分离,设立专门的数据 更新和去重服务器,减少网络爬虫中对数据处理 的负担,提高数据爬取的效率.实现数据能定期更 新,保持数据的时效性,从而为舆情监测系统提供 更为有价值的信息. 5)提供良好的人机交互界面,考虑到网络爬 虫的操作复杂性,因此设计一个良好的人机交互 界面是很有必要的.这样既可以让用户轻松的使 用网络爬虫进行数据的爬取,也可以提高网络爬 虫的实用性. 6)系统将提供对处理并保存的数据进行必 要的信息管理.对数据的二次处理是该网络爬虫 的特点之一,因此如果对已保存的数据进行必要 的信息管理应该是该网络爬虫设计的重要需求之 一.应提供一个较完善的信息管理功能和良好的 操作界面,通过二次处理后的数据实现舆情信息 的结构化存储. 3.2系统总体设计 基于上述需求分析的要求,针对本舆情监测 系统的需求,设计网络爬虫框架为多层C/S设计 模式,具体分为网页数据库、URL数据库、爬虫服 务器端、爬虫客户端几个主要组成部分,具体的系 统框架如图2所示. =二 lI调度单元I 。盟 H网爵 ————, ll I门 ^‘,吖 I 1 U — l敞据i 数据库IURL L_ l_J l障踟 j爵一 \ 面丽 图2系统框架图 Fig.2 Frame of the system 图3系统流程图 Fig.3 Flow dhat of hte system 3.4系统详细功能设计 3.4.1爬虫服务器端 爬虫服务器端主要由URL调度模块、网页采 集模块、URL去重模块、网页解析模块、数据维护 模块、用户管理模块等组成. URL调度模块:由一个URL队列构成,将采 集的URL保存到URL队列中,按照队列先进先 出的规则对所有采集的URL进行调度. 网页采集模块:利用H1TrP协议,将URL对 应的网页的HTML代码进行下载,以WEB文件的 方式保存到本地. URL去重模块:将采集的URL,利用Bloom Filter算法进行查找,如果没有重复则保存到URL 队列中,否则就丢弃该URL. 网页解析模块:将网页采集模块下载的网页 HMTL代码,去除其HTML标签和其他脚本代码. 并对得到的文本文件进行相应的格式化,并保存 南华大学学报(自然科学版) 2015年6月 到数据库中. 数据维护模块:对采集的数据,给予一个维护 功能,提供数据维护的基本模块,如果对数据的增 加、删除、更改等. 用户管理模块:建立对服务器操作用户的管 理,包括用户权限的管理、用户信息的管理等. 3.4.2爬虫客户端 爬虫客户端提供多种系统环境下的客户端 (Windows、Android、iPad).实现友好的站点采集 配置界面、与业务服务器通信模块、用户信息管理 模块、采集数据管理模块等. 站点管理模块:添加采集站点信息,包括站点 URL、站点名称和站点分析. 网络通信模块:利用Socket建立与服务器的连 接,定义与服务器通信的各种网络通信协议和功能. 用户管理模块:包括用户登录、注册、登录用 户的信息管理等相关功能. 采集数据管理模块:包括对采集数据查询、采 集数据的管理等相关功能. 3.4.3 URL更新服务器端 URL更新服务器端主要实现URL数据库维 护模块、URL数据更新模块、URL更新策略维护 模块等. 4系统测试与实验过程 系统测试可以直观的反应系统功能实现的效 果,并能对实现的需求进行一一的验证,因此测试 工作主要是针对系统功能测试和系统性能测试两 个部分.系统功能测试主要是对系统各个功能进行 验证,看是否能正常运行.系统性能测试则是对数 据抓取I生能做出分析,对于系统整体测试主要是对 系统的稳定性、安全I生、整体l生能方面的测试. 4.1测试环境 硬件:一台服务器和两台客户端计算机构成. 服务器配置为Intel Xeon CPU E5-2609、8G内存、 4TB硬盘;客户端计算机配置为:Intel Core i3. 2130 CPU、4 G内存、500 GB硬盘. 软件:服务器操作系统为:Windows Server 2008 R2 X64、数据库为:Windows SQL Server 2012;客户端操作系统为:Windows 7. 4.2实验过程 1)系统功能测试,主要对站点管理、数据采集、数 据管理等主要功能按照黑盒测试的方法对预期功 能进行测试,通过测试来检测每个功能是否能正 常使用,测试采集的站点为衡阳教育信息网 (http://www.hhyedu.tom.cn),一共采集15 867 个网页,识别网页12 671个,重复采集网页1个. 通过对该网站采集实现从网站采集配置到网页采 集,测试得到系统基本功能运行正常. 2)系统性能测试,测试周期为一个月,时间段为 2014年5月1O号8:00到2014年6月l0号8: 00,在这段时间内系统采集了3个网站,采集记录 为281 511条,更新URL数据3 541条记录.以下 即是对Bloom Filter算法在4、8、16个哈希函数下 错误率测试结果如图4所示;对向量空间模型 VSM算法识别效率的测试结果如图5所示. 籁 匿 如 ∞ 如 加 m 图4冲突数P与哈希函数个数 关系 ∞ ∞ ∞ ∞ ∞ 0 rig.4 Relationship between eont'diet P&hash lndion —◆一对应网页数目 0 0.5 1 余弦值 图5采集网页数与VSM余弦值关系 Fig.5 Relationship between Collect Web Number&VSM COS Value 在测试阶段发现问题7处,主要在配置用户 界面、数据抓取逻辑的优化、数据抓取的性能优 化、数据库读写性能优化等,经过反复的测试和修 正基本达到了设计预期效果. 5结论 该系统还正处于试用阶段,对于系统的改进 和性能的优化还需要不断的进行,实践证明,该系 统能够较好的对互联网主题网站信息进行自动抓 取,并且可以同时对多个网站实现并行数据的抓 第29卷第2期 刘志明等:舆情监测系统中信息采集模块的设计与实现 l07 取,大大的提高了数据的抓取能力.随着舆情监测 系统的不断深入,对于网站数据的采集也提出更 高的要求,如何抓取图片、声音、影视文件等非结 构化数据,是本系统的一个重要缺陷,如果利用当 前强大的云技术来进一步提高系统的相应能力, 提高系统的工作效率和系统的吞吐量是本系统接 下来要进行进一步研究的主要方向. 参考文献: [1]徐强,万亚平,雷龙眼,等.石鼓区网络舆情监控系统 的设计与实现[J].南华大学学报(自然科学版), 2013,27(3):2-5. [2]Brin S,Page L.The anatomy of a large—scale hypertextual web search engine『J].Computer Networks and ISDN Systems,2009,30(1-7):107-117. [3]Yang Y,Carbonell J G,Brown R D,et a1.Learning approa- ches for detecting and tracking new events[J].InteHigent Systems nad their Applications,IEEE,1999,14(4):3243. [4]吴丽辉,王斌,余智华.一种通用Web信息采集系统 的设计与实现[J].计算机工程,2005,31(3):2-3. [5]冯如晓,刘志明,雷龙艳.基于搜索引擎的关键词舆情 过滤算法研究[J].电脑知识与技术,2014,10(6): (上接第101页) [5]Bums A,McDermid J A.Real—safty system:anlaysis and sythesis[J].Software Engineering Journal,1994,9(6): 267.281. [6]Liu C L,Layland J W.Scheduling algoirthms for multi— programming in a hard-real-time environment[J].Jour- nal of the ACM(JACM),973,20(1):46-61. [7]Livani M,Kaiser J,Jia W J.Scheduling Hard and Soft Real—time Communication in the Controller Area Network [C].Workshop on Real—time Programming,1998. [8]Natale M D.Scheduling the CAN Buswith Earliest Deadline Techniques[C].21st IEEE Real—Time Systems,20O0. [9]Zuberi K M,Shin K G.Non—preemptive Scheduling of Messages on Controller Area Network for Rea1..time Con.. 1327—1332. [6]蒋辉,阳小华,刘志明,等.基于一种文档表示模型的 站内搜索引擎设计与实现[J].南华大学学报(自然 科学版),2013,27(4):77—81. [7]罗刚,王振东.自己动手写网络爬虫[M].北京:清华 大学出版社,2010:11—23. [8]杜阿宁.互联网舆情系统挖掘方法研究[D].黑龙江: 哈尔滨工业大学,2007:24-25. [9]陈丽萍.校园BBS舆情数据手机与提取系统的设计 与实现[D].武汉:华中科技大学,2009. [10]李玉华.面向主题的舆情采集搜索爬虫的设计与实 现[D].济南:山东大学,2009:27—30. [11]褚宏爽.主题搜索引擎网络爬虫的设计与实现[D]. 北京:北京邮电大学,2012:30—32. [12]Menczer F,Pant G,Srinivasan P.Topic web crawlers: Evaluation adaptive laogorithms l J 1.ACM Trnas.on In— ternet Technologies,2003,26(1):89—113. [13]初建崇,刘培卫.web文档中词语权重计算方法的改 进[J].计算机工程与应用,2007,43(19):192—194. [14]代宽,赵辉,韩冬,等.基于向量空间模型的中文网页 主题特征项抽取[J].吉林大学学报(信息科学版), 2014,32(1):88-93. trol Applications[C].1 st IEEE Rela—Time Technology and Applications,1995. [10]Santiago F,Francisco R,Alberto B.Software Based EDF Message Scheduing on CAN Networks[C].Proceedings of the Second International Conference on Embedded Software and Systems,2005. [11]Anderson J H,Bud V,Devi U C.An EDF—based Sched— uling Algorithm for Muhiprocessor Soft Real・-Time Sys-・ tems[C]//Euromicro Conference on Real—time Sys— terns.IEEE Computer Society,2005:199-208. [12]姚荣斌,邓睿,孙成祥.网络化控制系统的RM调度 优化研究[J].淮阴师范学院学报(自然科学版), 2013,12(4):327.330.