一种基于分布式的舆情数据实时采集方法和系统技术方案

优采云 发布时间: 2020-08-09 15:04

  本发明专利技术公开了一种基于分布式的舆情数据实时采集方法及系统,方法包括以下步骤:S1:建立舆情数据网站类库,分类并定义爬取数据项;S2:将数据采集网站列表传输给数据采集服务器,服务器分配相应的爬虫以休眠的模式循环地爬取数据;S3:对爬取到的源网页数据进行标签解析,定位目标数据项位置获取目标数据项;S4:将获取到的结果数据项封装成对应类的统一格式;S5:将封装后的数据存入对应的数据库;S6:生成检测日志文件。本发明专利技术构架先进,通过使用工厂模式作为系统的主要设计模式,能够快速生成新实例,将浏览器访问、日志生成、数据封装、代理设置以及队列设置等系统核心功能封装上去,增强系统的可扩展性和可移植性,提高代码的可重用性和系统的可维护性。

  

  全部详尽技术资料下载

  【技术实现步骤摘要】

  本专利技术涉及互联网舆情数据的分布式高并发采集方法及系统,特别的涉及目标数据的高效、实时采集技术实现方式及系统,尤其涉及一种基于分布式的舆情数据实时采集方法及系统。

  技术介绍

  舆情是在一定的社会空间内,围绕中介性社会风波的发生、发展和变化,民众对社会管理者形成和持有的社会政治心态。目前,网络成为反映社会舆情的主要载体之一,在舆情传播中起着重要的作用。而舆论危机的爆发使越来越多的人关注社会舆论的形成和发展。各级党政机关要及时了解信息,加强舆情监控,提高舆情应对能力和在新舆论环境中的执政能力,及时化解矛盾,处理好政府和民众的关系。企事业单位也须要关注网路舆情,利用市场已有的舆情剖析系统和服务平台,或者人员与工具结合,掌控网络舆情,辅助决策。如何从大量的网路数据中提取出关键信息,是当前技术研究的一个重点。传统的通用搜索引擎作为一个辅助检索信息的工具,成为用户访问网路的入口和手册。但是,这些通用的搜索引擎也存在着一定的局限性,1、通用搜索引擎所返回的结果收录大量用户不关心的网页。通用搜索引擎常常对信息浓度密集且具有一定结构的数据无能为力,不能挺好地发觉和获取关键信息。2、简单的基于互联网的数据采集系统,其采集方式单一,无法同时多任务执行,这就造成了数据的采集效率较低,无法满足数据的实时性。3、目前的其他舆情剖析监测系统,舆情数据大部分采用离线处理机制,在结构上就造成了其数据必然存在一定的信噪比。而随着网路技术的发展,信息更新的速率越来越快,低信噪比的舆情数据采集系统成为舆情剖析项目的急切需求。

  技术实现思路

  本专利技术的目的在于克服现有技术的不足,提供一种基于分布式的舆情数据实时采集方法及系统,爬取的数据可生成在线舆情大数据库,为相关政府及企业用户提供在线数据库服务。本专利技术的目的是通过以下技术方案来实现的:一种基于分布式的舆情数据实时采集方法,它包括以下步骤:S1:建立舆情数据网站类库,分类舆情数据源站,并定义每类网站的爬取数据项;S2:将数据采集网站列表传输给数据采集服务器,数据采集服务器分配相应的爬虫以休眠的模式循环地爬取目标网站数据,采集过程中使用生产者消费者模式并发执行采集任务;S3:对爬取到的源网页数据进行标签解析,定位目标数据项位置获取目标数据项;S4:将获取到的结果数据项封装成对应类的统一格式;S5:将封装后的数据存入对应的数据库;S6:生成检测日志文件。所述的步骤S1包括以下子步骤:S11:将所有数据源站分为多类,针对每一类网站采集包括网站的网页地址、网页标题、关键字在内的信息构建类相关的关键字库;S12:根据每类网站的页面数据特性,事先定义好要爬取的数据数组;S13:当有新的目标网站需要采集时,获取包括目标网站地址、页面标题、页面关键字在内的与关键字库对应的信息,根据获得的信息与已有的泛型数据对目标网站进行分类;同时筛选出网站的文章列表地址,过滤包括广告在内的与舆情数据无关的页面,将筛选出的地址加入数据采集网站列表。

  所述的步骤S2包括以下子步骤:S21:将分类后的舆情数据源网站以列表的形式传给数据采集服务器,数据采集服务器将采集任务分配到多台数据采集PC;针对每位源站,系统设置专门的爬虫进行数据爬取;S22:在数据爬取的过程中对源网站进行实时监控,系统在整个数据爬取过程中采用休眠机制循环访问网站页面,休眠时间依照网站的数据更新速率动态设置;当更新量达到采集阈值时,爬虫激活进行新一轮的数据采集;同时,在每一轮数据采集完成以后,系统标示最后的采集位置,日志文件记录本次循环共采集的数据条数,系统步入休眠状态。在数据爬取过程中,系统首先采用鞋厂设计模式将模拟访问不同的浏览器方式封装上去,并提供统一的实例化插口;在具体实例化的过程中,指定浏览器类型名称即可生产出对应的浏览器访问类;爬虫将按照数据源站的类型与复杂度生成对应的浏览器访问实例;同时,代理设置模块在浏览器访问过程中手动为程序分配IP地址。页面数据分为静态数据和动态数据;对于静态页面数据,爬虫调用模拟浏览器访问方式页面地址获取网页源数据;对于动态数据,爬虫在访问页面之前,需要通过抓包的方法找到动态数据返回链接,再调用浏览器访问方式获取页面数据。将URL地址储存队列方式封装上去,并提供统一的实例化插口;采用多级生产者消费者模式并发的爬取数据:一级生产者依据分配的数据源网站地址访问页面获取数据的一级URL地址,并将地址储存到数据队列当中;若当前地址页面不是正文地址,而是正文列表地址,系统将分配二级生成者从当前地址队列中获取URL地址进行数据爬取,直到获取到正文URL地址;消费者负责从正文地址队列中取出URL数据,访问页面获取正文页面内容;在此过程中,生产者和消费者彼此之间通过阻塞队列来进行通信;采用队列设置模块提供队列的存取操作,并初始化队列数据库并完善联接。

  所述的步骤S3包括对动态网页数据的剖析和对静态页面数据的剖析,其中对于静态页面数据使用封装好的Xpath方式,给定数据项的路径地址即可获取到对应数据项;同时结合正则表达式,通过正则表达式过滤筛选数据,补充获取XPath未能解析到的数据;系统将解析到的数据形参给事前定义好的对应的数据项;对于动态网页数据,使用JSON方式获取字典格式的动态网页数据项。所述的步骤S4步骤包括:在数据采集之前,采用鞋厂设计模式,将每一类网站定义好的数据项以及保留数组封装成字典格式,并提供统一的数据插口;在数据采集完成后,根据数据源网站类别,系统调用对应的封装方式将采集到的数据封装为对应类的统一格式;在封装过程中使用UUID方式为每条数据生成惟一的标识符,方便后续的检索操作。所述的步骤S5包括:采用鞋厂设计模式将结果数据的储存操作封装为队列方式,采集到数据然后调用队列方式将数据输入数据库服务器;在数据库服务器中分别为每一类源数据网站设置对应的数据库,在数据储存时将数据存到对应的数据库;根据保存数据的不同采取不同的数据库,保存生产者和消费者之间的URL队列数据。所述的步骤S6包括:采用鞋厂模式将日志方式封装上去,提供统一的插口访问;日志采用logging模块给运行中的程序提供了一个标准的信息输出插口;系统开始运行的时侯即调用日志插口生成实例,在整个过程中记录每位模块的运行状态与结果;在每一轮爬虫程序执行完成时,将检测结果按天生成日志文件。

  采用所述的方式的系统,所述的系统包括:数据打算模块,用于完成源站的分类以及目标数据项定义;更新检测模块,用于检测目标数据网站的更新情况。数据爬取模块,用于模拟浏览器环境访问源站目标页面并将页面数据获取到本地;代理设置模块,用于手动为服务器分配IP地址。队列设置模块,用于负责管理阻塞URL采集队列,以及结果数据储存队列,并进行去重操作;数据解析模块,用于通过剖析源数据,并从中解析出目标数据项;数据封装模块,用于将爬取到的数据项统一封装成标准格式输出;数据储存模块,用于将封装好的数据储存到在线舆情大数据库;日志生成模块,用于各环节检测状态的日志输出。本专利技术的有益疗效是:1. 系统构架先进,通过使用工厂模式作为系统的主要设计模式,能够快速生成新实例。将浏览器访问,日志生成,数据封装,代理设置以及队列设置等系统核心功能封装上去。增强了系统的可扩展性和可移植性,提高了代码的可重用性和系统的可维护性

  【技术保护点】

  一种基于分布式的舆情数据实时采集方法,其特点在于:它包括以下步骤:S1:建立舆情数据网站类库,分类舆情数据源站,并定义每类网站的爬取数据项;S2:将数据采集网站列表传输给数据采集服务器,数据采集服务器分配相应的爬虫以休眠的模式循环地爬取目标网站数据,采集过程中使用生产者消费者模式并发执行采集任务;S3:对爬取到的源网页数据进行标签解析,定位目标数据项位置获取目标数据项;S4:将获取到的结果数据项封装成对应类的统一格式;S5:将封装后的数据存入对应的数据库;S6:生成检测日志文件。

  【技术特点摘要】

  1.一种基于分布式的舆情数据实时采集方法,其特点在于:它包括以下步骤:S1:建立舆情数据网站类库,分类舆情数据源站,并定义每类网站的爬取数据项;S2:将数据采集网站列表传输给数据采集服务器,数据采集服务器分配相应的爬虫以休眠的模式循环地爬取目标网站数据,采集过程中使用生产者消费者模式并发执行采集任务;S3:对爬取到的源网页数据进行标签解析,定位目标数据项位置获取目标数据项;S4:将获取到的结果数据项封装成对应类的统一格式;S5:将封装后的数据存入对应的数据库;S6:生成检测日志文件。2.根据权力要求1所述的一种基于分布式的舆情数据实时采集方法,其特点在于:所述的步骤S1包括以下子步骤:S11:将所有数据源站分为多类,针对每一类网站采集包括网站的网页地址、网页标题、关键字在内的信息构建类相关的关键字库;S12:根据每类网站的页面数据特性,事先定义好要爬取的数据数组;S13:当有新的目标网站需要采集时,获取包括目标网站地址、页面标题、页面关键字在内的与关键字库对应的信息,根据获得的信息与已有的泛型数据对目标网站进行分类;同时筛选出网站的文章列表地址,过滤包括广告在内的与舆情数据无关的页面,将筛选出的地址加入数据采集网站列表。

  3.根据权力要求1所述的一种基于分布式的舆情数据实时采集方法,其特点在于:所述的步骤S2包括以下子步骤:S21:将分类后的舆情数据源网站以列表的形式传给数据采集服务器,数据采集服务器将采集任务分配到多台数据采集PC;针对每位源站,系统设置专门的爬虫进行数据爬取;S22:在数据爬取的过程中对源网站进行实时监控,系统在整个数据爬取过程中采用休眠机制循环访问网站页面,休眠时间依照网站的数据更新速率动态设置;当更新量达到采集阈值时,爬虫激活进行新一轮的数据采集;同时,在每一轮数据采集完成以后,系统标示最后的采集位置,日志文件记录本次循环共采集的数据条数,系统步入休眠状态。4.根据权力要求1或3所述的一种基于分布式的舆情数据实时采集方法,其特点在于:在数据爬取过程中,系统首先采用鞋厂设计模式将模拟访问不同的浏览器方式封装上去,并提供统一的实例化插口;在具体实例化的过程中,指定浏览器类型名称即可生产出对应的浏览器访问类;爬虫将按照数据源站的类型与复杂度生成对应的浏览器访问实例;同时,代理设置模块在浏览器访问过程中手动为程序分配IP地址。5.根据权力要求1或3所述的一种基于分布式的舆情数据实时采集方法,其特点在于:将URL地址储存队列方式封装上去,并提供统一的实例化插口;采用多级生产者消费者模式并发的爬取数据:一级生产者依据分配的数据源网站地址访问页面获取数据的一级URL地址,并将地址储存到数据队列当中;若当前地址页面不是正文地址,而是正文列表地址,系统将分配二级生成者从当前地址队列中获取URL地址进行...

  【专利技术属性】

  技术研制人员:李平,陈雁,胡栋,代臻,刘婷,许斌,孙先,林辉,赵玲,

  申请(专利权)人:西南石油大学,

  类型:发明

  国别省市:四川;51

  全部详尽技术资料下载 我是这个专利的主人

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线