(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202010613400.5
(22)申请日 2020.06.30
(71)申请人 中国地质大学(武汉)
地址 430000 湖北省武汉市洪山区鲁磨路
388号
(72)发明人 谢天奕 王永桂 李强 
(74)专利代理机构 武汉知产时代知识产权代理
有限公司 42238
代理人 易滨
(51)Int.Cl.
G06F  16/951(2019.01)
G06F  16/84(2019.01)
chrome浏览器是啥浏览器(54)发明名称一种基于网络爬虫技术的水文水质数据采集方法及系统(57)摘要本发明公开了一种基于网络爬虫技术的水文水质数据采集系统及方法,该系统及方法通过网页监控提醒插件进行目标网站下水质、水文数据的实时监控;监控过程中,采用网络爬虫技术,对于监控到的水质数据,在爬取得到后续用于水质数据解析的json文件后,基于Python对象的解码,将json文件中已编码的JSON字符串解码为P
ython对象后,得到水质数据;对于监控到的水文数据,在爬取得到包括网页内容的xml文件后,通过Xpath语法选取xml文件中的节点或节点集合,进行网页内容解析,得到水文数据;在建立了服务器与用户之间的连接会话后,按照预设的检索条件对数据采集模块中采集到的水文、水质数据进行检索,基于检索结果,设定分析条件,输出水文、
水质分析结果。权利要求书3页  说明书7页  附图1页CN 111859067 A 2020.10.30
C N  111859067
A
1.一种基于网络爬虫技术的水文水质数据采集系统,其特征在于,包括以下模块:
数据采集模块,用于通过网页监控提醒插件进行目标网站下水质、水文数据的实时监控;监控过程中,采用网络爬虫技术,对于监控到的水质数据,在爬取得到后续用于水质数据解析的json文件后,基于Python对象的解码,将json文件中已编码的json字符串解码为Python对象后,得到水质数据;对于监控到的水文数据,在爬取得到包括网页内容的xml文件后,通过Xpath语法选取xml文件中的节点或节点集合,进行网页内容解析,得到水文数据;
数据处理模块,用于建立了服务器与用户之间的连接会话后,按照预设的检索条件对数据采集模块中采
集到的水文、水质数据进行检索,基于检索结果,设定分析条件,输出水文、水质分析结果。
2.根据权利要求1所述的水文水质数据采集系统,其特征在于,所述数据采集模块包括网络爬虫模块;其中:
对于监控到的水质数据,当通过抓包分析工具分析出目标网站的URL后,所述网络爬虫模块下通过Python中的requests库发送post请求,得到用于后期进行水质数据解析的json 文件后,通过json库,将json文件中已编码的JSON字符串解码为Python对象,得到水质数据;
对于监控到的水文数据,所述网络爬虫模块下结合Python+Selenium+Chrome的爬虫框架来获取包括网页内容的xml文件。
3.根据权利要求2所述的水文水质数据采集系统,其特征在于,所述数据采集模块包括网页监视器模块和邮箱监视器模块,其中:
所述网页监视器模块,用于采用浏览器中设置的Distill Web Monitor插件,每隔一段时间执行对所述目标网站的实时数据监控,并在目标网站存在数据更新时,通过发送爬取提醒信息到邮箱监视器模块;其中,在进行水质数据监控时包括通过Xpath语法确认水质数据的测量时间,当被监控到的所述水质数据的测量时间发生改变时,发送爬取提醒信息;
所述邮箱监视器模块,用于读取邮箱所有邮件并返回一个邮件列表,同时在读取邮件的时候记录邮件数量,当判断存在新增邮件时,读取邮件列表中对应新增邮件的内容,根据爬取提醒信息确定目标网站存在数据更新时,驱动网络爬虫模块进行数据爬取。
4.根据权利要求3所述的水文水质数据采集系统,其特征在于,调用Python中的定时任务调度框架,每隔一段时间启动邮箱监视模块;
所述邮箱监视器模块下,邮件列表中按照先进先出的队列存储方式进行数据存储;若新增邮件数量为1,则读取邮件列表索引值为0的邮件,并在读取邮件内容的时候,通过正则表达式进行邮件内容的解析。
5.根据权利要求1所述的水文水质数据采集系统,其特征在于,所述水文水质数据采集系统还包括数据存储模块;
所述数据存储模块调用Python中的pymongo库进行水文、水质数据的存储。
6.根据权利要求5所述的水文水质数据采集系统,其特征在于,所述数据存储模块包括站点信息建立模块;
所述站点信息模块,用于采用bjson格式建立全国水文水质站点表、水文站点表、水质
站点表、水文数据表和水质数据表;其中:
全国水文水质站点信息表,用于存储全国水文水质站点名称与地理坐标;
水文站点表,用于存储被爬取的水文站点名称;
水质站点表,用于存储被爬取的水质站点名称;
水文数据表,用于存储爬取得到的若干项水文要素;
水质数据表,用于存储爬取得到的若干项水质要素;
所述水文、水质数据表中均包括站点测量时间。
7.根据权利要求6所述的水文水质数据采集系统,其特征在于,所述数据采集模块还包括去重模块;
所述去重模块,用于在从站点信息建立模块中获取到水文、水质数据表后,进行数据遍历,在数据遍历的过程中包括:
查询被遍历数据的站点查询时间,判断当前遍历过程中站点查询时间与上一次遍历过程中的是否相同;具体的:
若相同,则确定对应站点下的数据已经被爬取;
若不相同,则确定对应站点下的数据未被爬取,一方面将当前被遍历的数据存储在数据存储模块,另一方面查询水文、水质站点表,判断当前被遍历的站点是否已经记录在对应的站点表中,对于已记录在站点表下的判断对象,在确定所述判断对象对应的数据表后,向对应的数据表中添加爬取数据,对于未记录在站点表下的判断对象,还需在所述判断对象对应的站点表中添加站点名称,并创建相应的数据表,之后在进行爬取数据的存储。
8.一种根据权利要求1-7所述的任意一种基于网络爬虫技术的水文水质数据采集系统的水文水质数据采集方法,其特征在于,包括以下步骤:
S1、在数据采集模块下,通过网页监控提醒插件进行目标网站下水质、水文数据的实时监控;监控过程中,采用网络爬虫技术,对于监控到的水质数据,在爬取得到后续用于水质数据解析的json文件后,基于Python对象的解码,将json文件中已编码的json字符串解码为Python对象,得到水质数据;对于监控到的水文数据,在爬取得到包括网页内容的xml文件后,通过Xpath语法选取xml文件中的节点或节点集合,进行网页内容解析,得到水文数据;
S2、建立了服务器与用户之间的连接会话后,在数据处理模块下,按照预设的检索条件对数据采集模块中采集到的水文、水质数据进行检索,基于检索结果,设定分析条件,输出水文、水质分析结果。
9.根据权利要求8所述的水文水质数据采集方法,其特征在于,步骤S1中,对于监控到的水质数据,当通过抓包分析工具分析出目标网站的URL后,在所述网络爬虫模块下通过Python中的requests库发送post请求,得到用于后期进行水质数据解析的json文件后,基于Python对象的解码,具体为:
通过json库,将json文件中已编码的JSON字符串解码为Python对象;
步骤S1中,对于监控到的水文数据,所述在爬取得到包括网页内容的xml文件,具体为:在所述网络爬虫模块下结合Python+Selenium+Chrome的爬虫框架来获取包括网页内容的xml文件。
10.根据权利要求8所述的水文水质数据采集方法,其特征在于,步骤S1中,采用浏览器
中设置的Distill Web Monitor插件,每隔一段时间执行对所述目标网站的实时数据监控;
在爬取水文、水质数据的时候,包括以下子步骤:
S11、在使用Distill Web Monitor插件进行水文、水质数据监控时,当目标网站存在数据更新,通过发送爬取提醒信息到邮箱监视器模块;其中,还包括通过Xpath语法确认水质数据的测量时间,当被监控到的水质数据的测量时间改变时,驱动邮箱监视器模块通过发送爬取提醒信息;
S12、通过邮箱监视器模块来进行邮件内容的读取,根据爬取提醒信息确定目标网站存在数据更新时,驱动网络爬虫模块进行数据爬取;
S13、在从数据存储模块中读取爬取数据的时候,包括数据去重步骤,所述数据去重步骤具体为:
通过去重模块从站点信息建立模块中获取到水文、水质数据表,进行数据遍历,并在数据遍历的过程中确定对应站点下的数据已经被爬取;
若对应站点下的数据未被爬取,将被遍历数据存储在数据存储模块;
若对应站点下的数据未被爬取,还需查询水文、水质站点表,判断当前被遍历的站点是否已经记录在对应的站点表中,对于已记录在站点表下的判断对象,在确定所述判断对象对应的数据表后,向数据表中添加爬取数据,对于未记录在站点表下的判断对象,还需在所述判断对象对应的站点表中添加站点名称,并创建相应的数据表,之后在进行爬取数据的存储。
一种基于网络爬虫技术的水文水质数据采集方法及系统
技术领域
[0001]本发明涉及数据采集、分析领域,更具体地说,涉及一种基于网络爬虫技术的水文水质数据采集方法及系统。
背景技术
[0002]随着各种各样信息系统的应用,一个长期被忽视的问题逐渐浮出水面,这就是数据采集的问题。现今,数据采集问题已成为限制各种信息系统效能发挥的瓶颈和短板,如何快速、有效采集数据成为人们关注的重点。
[0003]随着互联网的发展,在庞大的网络信息中,人们可以通过一定的手段来获取想要获取的知识。对于不同的数据个体而言,需要摄取的知识是不相同的,该类现象很大程度上增加了目标信息获取的难度,因此网络爬虫这个概念就被提出来,网络爬虫具有较强的专业性,能对众多的Web页面实现有效的查询,在海量的互联网信息中,抓取有效信息并存储。
[0004]现阶段下,网络爬虫技术是解决数据采集问题的利器,在各种各样信息系统中都有运用这项技术。其中,以专利“发明名称:一种基于医疗系统爬虫提取数据的方法,专利公开号:CN111078976A ”为例,该发明中公开了基于网络爬虫技术从医疗系统数据库中,爬取病人的医学影像、有关病理参数、化验与测量结果、诊断记录以及相关的参数依据(年龄、性别、病史、出入院时间)等医疗数据。
[0005]水文水质数据对水生态领域极其重要,是开展水生态环境保护规划、治理、修复的重要基础性数据,但目前一方面该信息只公布公布实时数据,不公布历史数据,而长序列历史数据是进行科学研究、项目规划必不可少的数据。另一方面,水文水质数据就像一座宝库存在全国各级水利信息网,但很少有人专门进行采集和管理。
[0006]目前在爬虫技术的广泛应用下,并没有相关技术公开利用网络爬虫技术进行水文水质数据的采集应用,且,现有的网络爬虫技术或者系统,仅具有网络数据爬取的功能,缺乏对爬取后的数据进行组织,并提供服务的功能,其很难在业内进行大范围的应用。发明内容
[0007]本发明要解决的技术问题在于,针对现有技术缺乏对爬取后的数据进行管理与后续服务的缺陷,提供一种基于网络爬虫技术,爬取水文水质监测数据,并提供数据服务的系统和方法。
[0008]本发明解决其技术问题所采用的技术方案是:构造一种基于网络爬虫技术的水文水质数据采集系统,包括以下模块:
[0009]数据采集模块,用于通过网页监控提醒插件进行目标网站下水质、水文数据的实时监控;监控过程中,采用网络爬虫技术,对于监控到的水质数据,在爬取得到后续用于水质数据解析的json文件后,基于Python对象的解码,将json文件中已编码的JSON字符串解码为Python对象后,得到水质数据;对于监控到的水文数据,在爬取得到包括网页内容的xml文件后,通过Xpath语法选取xml文件中的节点或节点集合,进行网页内容解析,得到水
说 明 书1/7页CN 111859067 A

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。