前言:寻找写作灵感?中文期刊网用心挑选的大数据技术下舆情收集和监测,希望能为您的阅读和创作带来灵感,欢迎大家阅读并分享。
摘要:公民自发形成的舆论圈,交流更为便捷,传播更为多元,使得舆情具有了随意性、直接性、偏差性、突发性四大特征,对社会中的舆情传播产生的影响不可小觑,所以需要及时掌握公民舆情的发展动态。本文在现有国内外舆情收集与监测的基础上,构建了以Python爬虫技术为基础的舆情收集与监测系统,并且根据管理人员的实际需求对系统做了详细的分析与设计,通过网络讨论平台获取大量舆情数据进行整合分析,从而实现多态势舆情的实时监控和舆情数据分析的可视化。
1舆情收集与监测的关键技术
1.1本系统对
robot协议的应用本系统通过robot协议可以分析爬取的目标网站中哪些数据是对外开放可以进行爬取的,可以有效排除掉不允许爬取的数据。在国际上,robot协议没有明确的规定,它是一种道德类型的行业内协议,在爬取的过程中,它用来抵制恶意爬取而用作非法行为。robot协议是爬虫技术人员在道德层面必须遵守的道德标杆,所有的行业人员都不应该恶意触碰这个道德标杆。在此设计中,百度互联网网页的网站内有些是robot协议禁止爬取的,但是本设计用作舆情收集与监测,保护公民的身体安全和心理健康,所以此设计需要在某些地方跨过robot协议,对正常的数据进行爬取。
1.2爬虫技术
1.2.1爬虫原理
爬虫是通过向目标网站发出爬取请求,并得到目标网站回应的过程。爬虫通过对先前预设好的爬取规则不断向目标网站获取数据存储到本机,网络中每个资源都是由一个唯一的URL(UniversalResourceIdentifier,通用资源标识符)确定的,根据URL也可以定位到网络中的唯一一个资源。HTTP(超文本传输协议)协议提供了发布与接收HTML页面的方法,由HTML语言编写的网页代码可由浏览器渲染成结构清晰的页面。
1.2.2爬虫流程
爬虫通过URL对目标网站进行数据请求,当目标网站接收爬虫的请求之后就开始对网页进行分析,爬虫将按照之前设定好的爬虫顺序对网页依次进行URL的请求,目标网站不断处理爬虫请求,并将爬虫程序设定的需要进行爬取的数据依次存储到接口内的数据库中,最终爬虫将目标网站所有的请求处理完毕之后爬取结束。
1.2.3爬取方式
爬虫的爬取方式包括:横向爬取、纵向爬取。在系统中,以百度互联网网页为例,选取横向爬虫抓取,从列表第一页开始,根据输入地爬取页数不断地向后翻页,把下一页的URL加入到等待爬取的队列当中。此设计使用横向爬取方法,在规模不大的情况下,将设定好目标互联网网页和页数以后逐页进行数据爬取并存储,可以将本系统的性能大幅度提升。
1.3Scrapy架构
Scrapy框架作为Python语言中开源的第三方库,它在爬取的过程中,有对目标网站的数据爬取速度快、编写语言简洁、适用性强等优点,在特定网站中爬取制定的数据结构类型,同时Scrapy框架可以根据开发者不同的开发需求,对此框架进行相应的改进。本系统采用Scrapy作为Python爬虫最关键的技术,它是一个较高层级的网页爬取工具,在目标网页中将数据以特定的结构抓取下来,使用范围非常广泛,是舆情收集与监测、舆情分析必不可少的工具。它的中控系统为Engine(中心引擎),将管道、下载器、爬虫、调度器连接到一起,通过中心引擎进行数据之间的传递与交流。调度器将中心引擎的请求命令进行归类操作,按照预定方式进行排序,然后有序地将请求命令返回中心引擎,相当于中心引擎的“加工车间”。下载器将中心引擎的请求交付于网页,并且接收网页的回应交付给中心引擎。爬虫将从网页的回应中提取其中有用的数据,然后将下一步需要请求的URL交付给中心引擎,调度器往返之前的操作,实现爬取的自动化。管道将爬虫得到的Item(项目)进行一系列的操作。因为本系统需要爬取的数据规模不大,只需要选择其中爬取的页数就可以实现系统的需求。所以本系统选择Spider爬虫类,通过start_urls使爬虫从网页的第一列表页开始向后爬取选择的页数,同时使用Spider爬虫类,编写系统代码的工作量会轻松很多,方便后期对程序的完善。
2需求分析和系统总体架构
2.1可行性分析
本系统使用PyCharm作为开发工具,以Python作为开发语言,以Scrapy爬虫框架进行数据的收集,以Mysql作为数据存储库,以Jieba进行分词,用Pandas、Matplotlib、Numpy等工具进行数据可视化处理。从经济可行性上考虑,本系统所使用的PyCharm是官方免费版软件,涉及到的开发技术、包都为开源免费的,所使用数据库也为免费的。从法律可行性上考虑,本系统所使用的软件、数据库、技术在使用过程中不涉及版权问题,得到的数据均为网页公开数据,所以系统在法律上是可行的。本系统以Scrapy框架作为Python爬虫最关键的技术,它是一个较高层级的网页爬取工具,在目标网页中将数据以特定的结构抓取下来,使用范围非常广泛,是舆情监测、舆情分析必不可少的工具。
2.2系统需求分析
2.2.1业务需求分析
本文以互联网网页作为信息源进行分析研究,以爬取到互联网网页内容作为系统的初步目标。由于互联网网页内容繁杂,反爬虫机制健全,无法通过短时间内获取到一定规模的有效信息,故系统可以根据需求任意选择爬取的互联网网页名字和爬取的页数,根据舆情发展时间和热度的高低设定互联网网页爬取范围。主要工作放在信息分析方面,通过数据展示出公民最为关心的问题,从而提前预知舆情的走向。系统本身不会生成数据信息,系统所需的数据信息来源于互联网网页中公民的发帖与评论。但是由于互联网网页的数据库并不向用户开放,所以要想得到所需要的数据需要利用爬虫技术对互联网网页中的原始数据进行爬取,为系统进行数据分析创造条件。根据舆情收集与监测者的需求选择爬取的互联网网页名字与爬取帖子的页数。
2.2.2功能性需求分析
系统通过对互联网网页数据的水平广度进行爬取。其中水平爬取是将互联网网页进行广度优先爬取操作,可以实现在网页的第一层就可获得所需要的数据,很大程度上提升了数据爬取的效率。由于百度互联网网页对反爬虫机制做得相对完善,反爬虫机制对于一个主机IP频繁访问和流量访问进行监控,从而达到对爬虫的限制,一旦对本机IP进行封锁后,此IP将不能继续进行数据的爬取,所以此系统必须要克服反爬虫机制的限制,具备在反爬虫机制下爬取数据的能力。系统分析数据功能是指将爬取数据得到的帖子以及评论信息进行处理,实现数据的可视化功能。数据处理首先要除去数据中无效的数据,将有效的数据按照类别特征转化为相应的特征数值,筛选掉冗余的数据。其次处理干净的数据通过图表的形式,将互联网网页中有效的信息进行挖掘,从而达到用户可读的可视化效果,给用户提供参考依据。
3舆情收集与监测系统实现
3.1爬虫模块
3.1.1爬虫框架的搭建
爬虫是通过向目标网站发出爬取请求,并得到目标网站回应的过程。爬虫通过对先前预设好的爬取规则不断向目标网站获取数据存储到本机,在爬虫的过程中需要对网站进行解析,其主要依托于以下几种技术。爬虫流程如前所述。系统使用到的开发程序为Pycharm,它是JetBrains设计开发的一款由Python语言进行编程的软件。Pycharm开发软件中可以自定义第三方的库,下载Scrapy框架库和该库需要并行的第三方库,配置所有库所需要的运行环境,将存储接口连接到数据库,就可以通过解析网页实现对数据爬取并且存储。
3.1.2系统爬取
用户通过系统输入任何一个合法互联网网页名字,然后根据舆情预测规模大小并结合自身情况选择需要爬取互联网网页网站的页数(每页的爬取时间在4秒钟左右)。获取页面信息,并用Xpath解析内容,通过页面分析可知道每一个帖子都是一个li。循环遍历取出内容,并拼接帖子URL,进入帖子详情页面通过HTML分析获得一楼文本。系统会自动翻页爬取互联网网页的标题、作者、发布时间、链接、回复数量、帖子内容。将爬取到的数据存储到Mysql数据库的baidu库下。系统通过解析数据库,从数据库读取bordered表中数据以表格的形式展示到系统的html页面上:tableclass="tabletable-bordered"。用户可以根据数据的可视化视图完整地看到目标网站的所有帖子内容,根据标题、内容、回复数量直观地了解每一个话题的内容和关注程度,细致地掌握每一个话题的动向。
3.2数据分析模块
系统在爬虫对互联网网页的数据进行一定规模的爬取后,对目标数据进行重新审核检查和校验,将重复的数据信息进行删减,改正格式不正确的数据,最终保证数据的独立性和统一性,形成系统可以将数据进行批处理的归一化基础。通过对初始脏数据的预处理,得到干净、连续、标准的可进行Python库可视化操作的数据。为系统进一步的模型建立提供准确性。通过使用duplicated()函数pandas函数,集中进行检测是否存在数据重复,将重复的数据利用drop_duplicates()函数进行删除。然后利用第三方Jieba库,导入自定义词典,获取停用词list,然后删除jieba空格、删除停止词后的分词,使用reverse降序排序字典,最后得到关键词以及关键词出现的次数,完成分词操作,对后面数据分析创造条件。
3.3数据可视化模块
3.3.1词云展示
Python语言中pyecharts库是一个开源的完成词云绘制的关键库。首先引入pandas库和numpy库对数据进行分析,通过pandas库中的read-csv进行文件的读取,再通过文件的具体类型进行sep参数的设置,利用字符串join方法,使列表转化为字符串。第二,引入collection库中的counter方法,返回词汇出现频率的统计。第三,使用sorted方法和lambda函数得到分词关键词,用“choices_number=50”取出关键词出现频率排名在前50的关键词。最后,通过pyecharts库,设置wordcloud.add参数字体、颜色、大小、倾斜度。为了使舆情信息得到及时发现和处理。词云是舆情管理人员发现公民动态异常、掌握公民近期关注话题最直接的方式。词云通过词汇的形式展示公民近期最佳关注的话题,词汇区分颜色、大小和位置,将出现次数最多的词汇放到图形的中心并且增加字号,系统管理人员可以第一时间发现热点话题,如果话题内容为负面词汇,可以第一时间掌控信息,扭转舆情的爆发。
3.3.2热点话题词频
通过引入jieba库中的anasyle方法,收集数据中每个关键词汇以及每个关键词出现的频率。对词频前20名的词汇出现频率以柱状图的形式展示出来,可以使得舆情管理人员掌握对热点话题的关注人数,了解舆情的规模大小。例如,本系统对山东管理学院的论坛话题进行监测与分析。通过后台对高频词的分析,对有效、重要的高频词进行统计,可以明显地看出关键词中“考研”出现的频率最高,说明“考研”是山东管理学院最受关注的话题,足以说明学习氛围的浓郁。其次,开学、成绩、专升本、资料等关键词出现频率也都排在前列并且差距不大,这些关键词都为正面话题。当某一种关键词的出现频率远高于其他关键词或者有负面关键词出现时,则会有舆情爆发的风险,管理人员应随时关注,及时作出相应的决策。
3.3.3互联网网页评论数量区间
通过统计互联网网页不同楼层范围内的回复数量,将20层设为分界点。统计数据中20层以上的楼层如果占比越大,说明此时间段内可能会出现热点话题讨论高潮,意味着将会有舆情的发生,所以根据实时监控楼层回复数量的占比,可以有效预测舆情的发生,词云和排名前20的关键词分析出舆情的主题,从而使舆情管理人员及时地做出决策,避免负面舆情的发展。
4结语
本文通过使用Python语言实现了一个简单的舆情收集与监测系统,功能基本完善,对互联网网页的监测具有一定的效果。随着大数据时代的到来,人们对网络的依赖性与迷茫性很高,此系统将人们在网络中的言行举止记录下来,关注他们在生活中的另一种状态,在一定程度上可以帮助公民调整心态,避免舆情的大面积爆发,具有一定的实现意义。参考文献:
[1]李文军.大数据时代网络舆情管理机制研究[D].电子科技大学,2021.
[2]陈旭辉,郭常斐.大数据背景下舆情的传播和应对研究[J].厦门城市职业学院学报,2021,23(01):7-12.
[3]于宁.舆情传播态势预测的研究与系统实现[D].济南大学,2019.
作者:颜洁 单位:武警湖北省总队