互联网突发事件舆情数据爬虫技术探析

互联网突发事件舆情数据爬虫技术探析

[摘要]互联网是社会突发事件舆情数据的主要载体,对此类数据的收集和分析,对防灾减灾服务具有重要意义。因此,亟待通过最新爬虫技术采集互联网数据,并通过大数据、云计算、地理信息等新技术新方法的运用,充分发挥互联网突发事件舆情数据的知识价值,实现数据的动态感知、深度挖掘和智能分析。通过研究爬虫原理和相关技术,确定了基于Jsoup的互联网突发事件舆情数据采集算法,并实现了数据的采集、处理和存储。

[关键词]Jsoup;SeleniumWebDriver;突发事件;舆情;爬虫

1.引言

中国是世界上自然灾害发生十分频繁的少数国家之一,近年来,其他事故灾难、公共卫生事件、社会安全事件也频频发生,对互联网中突发事件相关舆情数据的收集和分析成为气象防灾减灾的重要构成部分。实践表明,互联网舆情数据存在稀疏性、不确定性、模糊性等缺点,但是具有不可替代的多元性、丰富性、动态性和关联性等特征。鉴于此,亟待通过研究最新爬虫技术方法,快速、准确采集有效互联网突发事件舆情数据,充分发挥舆情数据的知识价值,实现舆情信息的动态感知、深度挖掘和智能分析。

2.互联网突发事件舆情数据

随着互联网的发展及新媒体传播平台的影响,关注突发事件服务的人群数量不断增加,能够及时获取突发事件信息,有力保证突发事件相关的气象预警、防灾减灾等信息及时传递给用户,是气象服务中极其重要的事。另外,通过互联网突发事件舆情信息,可以突破人力资源的限制,实现全天24h不间断监测互联网信息,并快速发现突发事件灾情信息,提高突发事件获取的时效性,及时获取第一手资料,以进一步提高突发事件风险预警与评估的实时性和准确性。突发事件舆情数据采集通过确定突发事件关键词和数据源范围来采集。

2.1突发事件关键词。为了保证从互联网获取数据的准确与有效,互联网突发事件舆情数据将基于突发事件关键词去爬虫采集。突发事件关键词参照于国家预警信息中心自然灾害、事故灾难、公共卫生事件、社会安全事件四大类突发事件,确定了137个突发事件关键词。自然灾害类突发事件关键词包括洪水、洪涝、决口、垮堤、干旱、气象灾害、暴雨、大雪、龙卷风、沙尘暴、台风、大风、冰雹、寒潮、高温、干热风、干旱、大雾、低温、霜冻、雷电、雪崩、地震、地质灾害、山体崩塌、滑坡、泥石流、地面塌陷、地裂缝、海洋灾害、风暴潮、巨浪、海啸、赤潮、海冰、生物灾害、蝗虫、森林火灾、草原火灾。事故灾难类突发事件关键词包括安全事故、飞行事故、坠机、撞机、紧急迫降、水上突发事件、水上保安事件、撞船、触礁、铁路中断、公路中断、行车中断、交通中断、断路、港口瘫痪、断航、大面积停电、电网事故、通信故障、通信中断、骨干网中断、支付系统瘫痪、清算系统瘫痪、供气中断、停气、停水、特种设备事故、踩踏、环境污染、生态破坏、辐射污染、取水中断、化学品泄漏、泄漏、核事故、核事件、污染事故、盗伐、滥伐、毁林开垦、物种灭绝。公共卫生事件类突发事件关键词包括肺鼠疫、肺炭疽、腺鼠疫、非典型肺炎、禽流感、群体性不明原因疾病、新传染病、毒株丢失、食品安全事故、食物中毒、传染病疫情、输入性病例、霍乱、医源性感染事件、职业中毒、动物疫情、口蹄疫、疯牛病、猪瘟、新城疫疫情、牛瘟、牛肺疫、非洲猪瘟、非洲马瘟、布鲁氏菌病、结核病、狂犬病、炭疽。社会安全事件类突发事件关键词包括群体性事件、冲击、围攻、打砸抢烧、阻断交通、阻挠施工、聚集事件、大规模游行、集会、绝食、静坐、请愿、群体性械斗、冲突事件、暴狱事件、游行示威、上访、多校串联、非法宗教活动、金融突发事件、涉外突发事件、涉外事件、撤侨、粮食脱销、市场异常、必需品短缺、恐怖袭击、核爆炸、爆炸袭击、劫持平民、大规模袭击、重大刑事案件。

2.2舆情数据采集数据源。为了保证互联网采集数据的有效性,突发事件舆情数据源范围,确定为国家政务网站、社会主流媒体、官方微信微博账号。互联网突发事件舆情数据获取将从已确定的数据源中,通过突发事件关键词,运用爬虫技术去采集。政府官网数据源包括中华人民共和国应急信息网、中华人民共和国应急管理部、中华人民共和国生态环境部、中华人民共和国自然资源部、国家煤矿安全监察局、中华人民共和国交通运输部、中华人民共和国农业农村部、文化和旅游部、人力资源和社会保障部、民政部、新疆生产建设兵团应急管理局、新疆维吾尔自治区应急管理厅、宁夏回族自治区应急管理厅、甘肃省应急管理厅、西藏自治区应急管理厅等。社会主流媒体数据源包括百度新闻、澎湃新闻、中国新闻网、凤凰网、环球网、新浪新闻、人民日报、中国天气网、腾讯新闻、网易新闻、中国林业网、光明网、央广网、搜狐、中国应急、央视网、人民网等。微博、微信公众号数据源包括人民日报、北京日报、国家应急广播、中国天气网、中国气象数据、广州天气等。

3.爬虫相关技术

3.1爬虫原理。网络爬虫是搜索引擎的重要组成部分,它通过自动提取网页的程序,为搜索引擎从万维网上下载网页。传统爬虫流程为从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件[1,2,3]。

3.2爬虫分类。网络爬虫按照系统结构和实现技术,可以分为以下几种类型:通用网络爬虫(General、Purpose、Web、Crawler)、聚焦网络爬虫(Focused、Web、Crawler)、增量式网络爬虫(Incremental、Web、Crawler)、深层网络爬虫(Deep、Web、Crawler)。实际的网络爬虫系统通常是几种爬虫技术相结合实现的[4,5,6]。通用网络爬虫又称全网爬虫(Scalable、Web、Crawler),常用于为门户站点搜索引擎、大型Web服务提供商采集数据,从一些种子、URL或整个WEB中进行爬虫。聚焦网络爬虫(Focused、Crawler),又称主题网络爬虫(Topical、Crawler),通过主题关键词去爬取与主题相关页面。增量式网络爬虫(Incremental、Web、Crawler)是对发生过变化的网页或者新产生的页面进行爬虫。能保证所爬的页面是新的页面。

3.3爬虫技术。Jsoup是一款使用Java语言的HTML解析器,提供了一套用于处理实际HTML的Java库,可直接解析某个URL地址、HTML文本内容。它使用HTML5最佳DOM方法和CSS选择器,为获取URL以及提取和处理数据提供了非常方便的API。使用Jsoup直接获取网页源代码然后获取元素和内容。WebDriver全称SeleniumWebDriver[7,8],是目前先进的自动化测试框架。SeleniumWebDriver网页交互功能强大,通过模拟用户行为,实现动态的网页爬取。将获取到的HTML网页的半结构化数据通过格式转换、特殊字符去除、数据合并等操作转化为结构化数据。

4.舆情信息爬虫实现

通过对爬虫原理及爬虫技术的研究,结合突发事件舆情数据特点,首先确定了数据采集策略,然后确定数据采集步骤、数据采集方法和具体实现过程。具体如下所述。

4.1数据采集策略。由于突发事件关键词太多,一次爬虫采集过程耗时太长,为了保证爬虫数据的时效性,对所有突发事件关键词根据重要程度进行分级,共分为三级,爬虫程序实现多线程执行,并将爬虫关键词分级分时段处理,按三个级别设置时间间隔。第一级关键词每6小时爬取一次,第二级和第三级关键词每24小时进行爬取,若爬虫时间过长超过6小时,会在结束后立即开始新一轮爬虫,以完成分时段分级爬取,有效避免数据产生冗余的同时提高数据采集效率。采集数据的关键词还将按照自然灾害、事故灾难、公共卫生事件、社会安全事件四个类别进行分类,便于系统对于关键词的内容分析或存储。

4.2数据采集步骤。互联网突发事件舆情数据采集步骤分为四个步骤:一是从数据源列表中获取网页信息;二是分析网页布局与网页内容;三是根据突发事件关键词及网页布局,运用爬虫技术,编写爬虫方法获取网页数据,并对数据做去重、清洗等处理。四是对处理后的数据进行结构化存储。

4.3数据采集方法。根据突发事件采集数据源列表,数据源网站包括静态网页和动态网页,通过对爬虫技术的研究,突发事件舆情数据采集使用的爬虫技术分为三种类型:一是通过使用Jsoup进行静态网页爬取,通过Jsoup直接获取网页源代码然后获取元素和内容值等。二是对于反爬较严重的情况以及动态网页将通过SeleniumWebDriver(自动测试框架)模拟浏览器行为爬取内容。第三,对于反爬技术较低,以及接口暴露的网站将会利用封装好的HTTP请求发送器对某个接口爬取获取JSON数据。

4.4数据采集实现。突发事件舆情数据采集实现使用Spring、Boot框架,使用Java语言进行开发,数据库为postgreSQL。主要分为以下步骤:首先新建Maven项目,在项目里添加需要的工具包,编写数据库等配置文件;二是使用HTTPClient获取网页信息。通过HTTPClient访问网页时,浏览器会向网页所在服务器发起请求并获取解析响应、返回结果,获取到网页HTML页面数据。三是通过Jsoup工具对HTML页面信息进行解析。通过对HTTPClient获取到的网页信息进行遍历解析,先通过Documentdoc=Jsoup.parseJsoup.parse(Filein,StringcharsetName,StringbaseUri)方法将HTML解析成一个Document,然后使用Jsoup技术中的Select方法来抽取突发事件关键词相关数据,Select方法将返回一个Elements集合,并返回抽取和处理结果;四是对解析后的数据进行结构化存储。

5.结语

在深刻理解爬虫原理和爬虫技术的基础上,本文结合互联网突发事件舆情数据采集需求,制定了采集策略、确定了舆情数据采集方法,并通过使用Spring框架和postgreSQL数据库,实现了突发事件舆情数据的采集和存储,后续将根据数据采集结果,进一步优化数据爬虫方法,实现互联网突发事件舆情数据的有效、实时的采集。

作者:冯宇星 庞君如 崔磊 曹云龙 石锋 单位:中国气象局公共气象服务中心 中国气象局减灾司公众处