摘要:在网络舆情业务监测中,以传统爬虫的方式进行监测,容易产生监测效率低、成本高等问题,在此背景下,采用分布式爬虫技术,能够对网络舆情数据进行快速监测,进而进行数据的处理与分析,以此能够高效率感知舆情信息,进一步提升舆情管控与预防能力。
关键词:网络舆情;分布式;爬虫;预防
一、 引言
近年来,我国社会进入社交媒体爆炸式发展的阶段,信息的传播速度极快,网络舆情信息不仅是一个个热门话题,更是对政府的感知能力和社会治理能力提出了全新的挑战[1]。基于该现状,一款能够自动获取网络舆情信息并对舆情信息进行分析的软件是相关职能部门迫切需要的。相关职能部门可以通过该系统在海量数据中抓取网民对某事件的评论和情感倾向,来了解并把握群众的情绪,从而对舆情事件做出更加高效、正确的决策。
二、网络舆情爬虫系统关键技术
(一)Python开发语言
在信息技术体系的开发中,采用Python语言对网络爬虫系统实现的过程进行实现,以此明确需求阶段、设计阶段与实现阶段的工作内容与目标。Python语言与Java语言、C语言是彼此相互独立,采用开发的方式为面向对象的模式,吸取其他开发语言的优点,能够指导软件开发过程[2]。
(二)MongoDB数据库
信息技术的快速发展,推动了数据存储、前端开发等技术的进步,能够完成业务数据信息的存储与处理。目前业务系统需要存储的数据信息越来越多,主要采用的主要是面向对象的关系数据库,目前典型的关系数据库有SQL Server系列的数据库、Oracle数据库与MySQL数据库。目前网络爬虫系统开发中,MongoDB数据库是目前典型的非结构化应用的数据库。数据信息存储在一个大仓库,而是根据数据信息的类别存储到不同的表格中,能够有效增加数据信息的灵活性。数据信息的查询能够采用标准的SQL语句,方便技术人员快速上手进行操作[3]。
三、需求分析
(一)系统业务分析
爬虫系统的基本工作原理为:爬虫系统从待抓取URL队列中取出一个URL作为程序的入口地址,通过DNS解析后找到该URL对应的网站页面,在页面中提取到的页面内容存入MongoDB数据库[4]。爬虫系统体系结构如图1所示。
(二)系统功能需求分析
系统业务功能主要包括页面抓取、页面解析与页面存储,详细系统总体用例图如图2所示。
图2 系统业务功能用例图
具体系统业务功能用例内容包括:首先,页面抓取功能:在页面抓取的工作过程中,先给出一个URL作为起始点,网络爬虫处于该位置点进行检索提取操作,找到使用的客户端主机名称和网络端口信息[5]。其次,页面解析功能:对于网络中的各类网页,能够通过正则表达式进行规则搜索及解析。最后,数据存储功能:在过程中,通过正则表达式来对页面进行筛选,将信息以JSON的形式存储[6]。
(三)系统性能需求分析
对这些性能指标明确叙述后,主要的工作需要对系统的性能进行说明,以此保障系统的性能具备良好的运行保障,这些性能方面的内容主要分为响应的时间、系统用户并发与系统稳定操作方面的内容,详细的这些性能指标具体阐述:
首先,可靠性方面的指标。一方面是需要确保系统遇到攻击时候同时具备良好的稳定性,能够快速恢复稳定运行;另外一方面是系统能够稳定运行的时间,因此需要系统能够长时间保持稳定状态运行[7]。其次,并发人数。对于系统的使用而言,需要考虑并发性的因素,结合系统的需求来确定,系统的并发人数客户应在500用户以上,使得系统后期在系统运行时候能够适应人数的并发使用[8]。最后,系统功能模块响应时间。对于系统而言,每次用户操作后,系统进行响应,这些功能模块的最大响应时间不宜超过5s,如果超过该响应时间,则必然降低系统使用的交互性,以此提升系统的响应效率,满足用户的操作需要[9]。
四、关键技术研究与应用
(一)体系架构设计
在系统总体设计中,按目前系统设计模式,需要完成系统架构设计。这些架构设计工作重点是确定三层架构设计,每一层设计架构包括数据层、表现层与业务逻辑层,这些层次架构每一的目标与使用方式不同,设计架构如图3所示。
图3 系统体系架构设计
结合系统体系架构设计来说,系统采用微服务的设计方式,主要从三层架构设计的方式进行处理,不同层次架构之间耦合度应尽量降低,每一层工作内容与工作目标不同,以此满足系统的处理需要。
1.表现层
系统中的用户角色分为用户与管理员,这些用户在表现层对系统的功能进行操作,用户能够完成网络舆情信息的抓取、解析与存储操作。表现层设计的原则是友好便利化,用户根据系统的提示能够快速完成各个模块的操作[10]。
2.业务处理层
在系统中,系统的主要处理源码在业务处理层,结合需求分析阶段的功能,这部分源码包括页面抓取、页面解析、页面存储等功能。用户与管理员对这些模块进行操作,每一项业务功能的操作需要完成对应数据的存储与更新,后将数据信息返回到表现层。
3.数据层
这一层次主要目标是完成系统中所有数据信息的存储,结合系统处理需要,系统需要存储表格包括页面信息等内容,不同的数据库表格需要确定数据存储的字段、长度与类型,这些数据库存储用户操作的信息。
(二)系统技术架构设计
在实现的网络爬虫管理系统中,中心节点负责控制,包括URL控制、抽取器学习及主题控制,如图4所示。
图4 中心节点服务器业务流程示意图
在中心节点服务器中,主要包括的模块:第一,主题控制模块。本模块完成关于主题的操作,包括对主题的描述、添加和删除;控制主题抓取频率;编辑每个主题种子队列。第二,抽取器学习模块。本模块采用基于内容的网页分析算法,从URL种子入手,训练形成针对种子代表的权威站点的数据抽取器。第三,URL控制器。URL模块主要负责中心节点内的URL队列的排序,并根据各子节点负载反馈进行任务分割[11]。
(三)系统测试效果分析
在网络爬虫系统的测试操作中,系统的测试目标需要满足稳定运行,因此需要确定系统在功能、接口与性能等多个方面的反应需要。在功能方面,通过系统的功能测试能够有效发现每一个前台与后台功能可能出现的缺陷,有效识别这些可能出现的缺陷,满足系统的稳定可靠运行。对于系统的性能,需要结合性能需求方面提出的目标,主要是响应时间、并发性与可靠性方面的要求,测试阶段需要满足这些具体的性能指标;对于系统的接口,需要判断数据处理的流程、前后台接口能否正常完成数据的流转处理,以此满足系统稳定可靠地运行,实现网络舆情信息的抓取、解析与存储等操作[12]。
五、 结束语
对于网络舆情爬虫系统实现来说,开发关键的内容主要是确定两个方面,第一个是确定系统采用的开发技术,充分对比不同开发技术的优劣,确定采用Python开发语言;第二个方面是以实现系统的需求为核心,以此完成系统的功能模块的分析、设计与测试,核心功能包括页面抓取、页面解析与页面存储等内容。目前系统在测试后,其总体的功能保持稳定可靠地运行,后期主要在系统稳定可靠性方面不断进行持续改进优化,第二个方面结合用户的具体使用意见完善系统的操作界面。
作者单位:王小月 江苏宿迁泽达职业技术学院
参考文献
[1]李琳.基于Python的网络爬虫系统的设计与实现[J]. 信息通信,2017,(09):26-27.
[2]赵茉莉. 网络爬虫系统的研究与实现[D].电子科技大学,2013.
[3]张明杰.基于网络爬虫技术的舆情数据采集系统设计与实现[J].现代计算机,2015,(12):72-75.
[4]Aghamohammadi A, Eydgahi A. A novel defense mechanism against web crawlers intrusion. Electronics, Computer and Computation (ICECCO), 2013 International Conference on. IEEE, 2013:269-272.
[5]段兵营. 搜索引擎中网络爬虫的研究与实现[D].西安电子科技大学,2014.
[6]Bhushan R, Nath R. Web Crawler–A Review. International Journal of Advanced Research in Computer Science and Software Engineering. 2013, 8(03): 54-57.
[7]郭丽蓉. 基于Python的网络爬虫程序设计[J]. 电子技术与软件工程,2017,(23):248-249.
[8]龚千军. 基于网络爬虫的多媒体课件下载系统设计与实现[J]. 电脑编程技巧与维护,2016,(9):70-71.
[9]Brin, Sergey, and Lawrence Page. “The anatomy of a large-scale hypertextual Web search engine.” Computer networks and ISDN systems30.1 (1998): 107-117.
[10]褚宏爽.主题搜索引擎网络爬虫的设计与实现[D].北京邮电大学,2013.
[11]姜杉彪,黄凯林,卢昱江,等. 基于Python的专业网络爬虫的设计与实现[J]. 企业科技与发展,2016,(08):17-19.
[12]惠莹.基于爬虫技术的校园网络舆情监测元数据管理研究[J]. 电脑编程技巧与维护,2018,(01):116-118.