一种自动获取目标数据源的方法及系统技术方案

技术编号:20589018 阅读:47 留言:0更新日期:2019-03-16 07:12
本发明专利技术提供一种自动获取目标数据源的方法,包括如下步骤:对网页数据进行解析;对解析后的数据进行结构化或半结构化形成可分析数据;基于解析后获得的可用于分析的数据进行数据分析以确定是否需要获得该网页数据;利用数据采集器获取数据源网页数据并将获取的网页数据保存在关系型数据库或者文件中。采用该方法,在对网页数据进行爬取之前,首先对网页数据进行可分析化,并对其进行分析,获得用户感兴趣的网页页面数据,而不同于传统的先爬取数据保存,然后进行分析的方法。这么做的优点也是非常明显的,它能够大幅减少后续开发人员的庞大数据分析挖掘工作,提高效率。本发明专利技术进一步涉及一种自动获取目标数据源的系统。

【技术实现步骤摘要】
一种自动获取目标数据源的方法及系统
本专利技术涉及数据采集
,具体涉及一种自动获取目标数据源的方法及系统。
技术介绍
随着互联网技术的发展,现在已经进入到大数据时代。随着数据量的指数级增长,各个公司对于大数据研究和应用也越来越广泛,由于绝大多数数据的获取方式都是通过互联网,而互联网上的数据种类繁多,且又有结构化和非结构化的数据,给用户的采集和分析带来很多不便。目前的数据采集方式均是通过网络数据爬虫将目标网站的数据全部爬取下来保存,然后再进行相应的数据清理等处理工作得到感兴趣的数据并保存以备用。这种方法是最简便的,但是带来的问题是数据量巨大占用空间,而且由于不同类型的数据都存储在一起,给后续的处理工作也带来很多不便。
技术实现思路
有鉴于此,本专利技术提供一种自动获取目标数据源的方法,其特征在于,包括如下步骤:对网页数据进行解析;对解析后的数据进行结构化或半结构化形成可分析数据;基于解析后获得的可用于分析的数据进行数据分析以确定是否需要获得该网页数据;利用数据采集器获取数据源网页数据并将获取的网页数据保存在关系型数据库或者文件中。优选地,通过htmlunit进行数据的解析形成字串格式。优选地,可以采用另一种方法进行数据解析,即利用htmlparser将html页面中的标签按树形结构解析成一个一个结点,一种类型的结点对应一个类,通过调用其方法访问标签中的内容。该方法包括:从页面中提取出子链接以及解析网页内容;其中提取页面子链接的步骤为:用被提取的网页的url实例化一个Parser;实例化Filter,设置页面过滤条件;用Parser提取页面中所有通过Filter的结点,得到NodeList;遍历NodeList,调用Node的相应方法得到其中的链接,加入子链接的集合;返回子链接集合;其中解析网页内容的步骤为:读取html文件,获得页面编码;用页面编码实例化html文件的Parser;对需要提取的结点设置相应的Filter;根据给定的Filter,用Parser解析html文件;提取结点中的文本内容。进一步地,所述的数据分析方法为关键词分析、或相似文本分析等。进一步,所述的解析和结构化半结构化过程在设定的缓存中进行。根据本专利技术的另一方面,还提供一种自动获取目标数据源的系统,其特征在于,包括:数据解析模块,用于对目标网页数据进行解析;数据处理模块,用于将解析后的数据进行结构化或半结构化处理;数据分析模块,用于对经过数据处理模块处理后的结构化或半结构化数据进行分析,以确定是否为需要采集的数据;数据采集器,用于对需要采集的数据进行采集并存储。优选地,采用封装的htmlunit执行目标网页的数据解析。进一步地,还可以利用htmlParser执行目标网页的数据解析。从上述技术方案可以看出,本专利技术提供的数据自动采集方法及系统,不同于传统的先爬取数据再进行分析的方法,而是先对数据进行解析,获得可分析的数据,对数据进行分析后只爬取那些需要爬取的目标数据。这样可以为后续的处理带来很大的方便,而且不会加重工作量,是对现有的数据采集方法的优化。附图说明为了更清楚地说明本专利技术实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1是本专利技术实施例提供的自动获取目标数据源的方法的流程图。图2是本专利技术实施例提供的自动获取目标数据源的系统结构示意图。图3是本专利技术实施例提供的htmlunit执行js的过程。具体实施方式为使本专利技术实施方式的目的、技术方案和优点更加清楚,下面将结合本专利技术实施方式中的附图,对本专利技术实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本专利技术一部分实施方式,而不是全部的实施方式。基于本专利技术中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本专利技术保护的范围。因此,以下对在附图中提供的本专利技术的实施方式的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施方式。基于本专利技术中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供一种自动获取目标数据源的方法,包括:对网页数据进行解析;对解析后的数据进行结构化或半结构化形成可分析数据;基于解析后获得的可用于分析的数据进行数据分析以确定是否需要获得该网页数据;利用数据采集器获取数据源网页数据并将获取的网页数据保存在关系型数据库或者文件中。S101,对网页数据进行解析;网页数据一般为html格式或xml格式,在数据采集之前,首先对目标网页的数据进行解析,解析的方法可以采用htmlunit,它相当于一个没有界面的浏览器,可以进行浏览器操作,它采用了HttpClient和Java自带的网络api结合来实现;它将一个网页封装成了一个对象,不仅保存了这个网页对象,还存有这个网页的所有基本操作甚至事件。htmlunit执行js时,会将整个页面下载下来,而很多时候,我们执行js,只是因为需要执行后生成url,不必要的频繁页面下载不但会增加程序运行时长,也会加重网络负载,此时可以采用生成一个伪response,而不是去真正获取页面的response,用来构造所有的新页面。具体实现办法为:如果当前线程是第一次执行该下载方法,就不对代码做修改,让其生成一个真正的response,然后,将该response对象保存起来,待该线程后续再执行js进入该方法,不再生成response对象,而是将之前保存起来的response拿出来直接使用,并修改对应的url为执行js之后生成的url即可。js执行完成之后,返回ScriptResult对应的url,就是执行js之后生成的url,但如果以这个url去拿页面的源码的话,会得到“错误”的数据,这是因为每次都用了同一个response,而不是url页面对应的url。但这么做的初衷是为了得到正确的url,而不去download整个页面,所以这种”错误“不会影响程序的运行及后面的结果。另一种可选的方案是,解析过程采用htmlparser包,它提供方便、简洁的处理html文件的方法,将html页面中的标签按树形结构解析成一个一个结点,一种类型的结点对应一个类,通过调用其方法可以轻松地访问标签中的内容;采用hemlparser包的处理主要包括从页面中提取出子链接和解析网页内容;其中提取页面子链接的步骤为:用被提取的网页的url实例化一个Parser;实例化Filter,设置页面过滤条件;用Parser提取页面中所有通过Filter的结点,得到NodeList;遍历NodeList,调用Node的相应方法得到其中的链接,加入子链接的集合;返回子链接集合;其中解析网页内容的步骤为:读取html文件,获得页面编码;用页面编码实例化html文件的Parser;对需要提取的结点设置相应的Filter;根据给定的Filter,用Parser解析html文件;提取结点中的文本内容。S102,对解析后的数据进行结构化或半结构化形成可分析数据;采用h本文档来自技高网...

【技术保护点】
1.一种自动获取目标数据源的方法,其特征在于,包括如下步骤:对网页数据进行解析;对解析后的数据进行结构化或半结构化形成可分析数据;基于解析后获得的可用于分析的数据进行数据分析以确定是否需要获得该网页数据;利用数据采集器获取数据源网页数据并存储。

【技术特征摘要】
1.一种自动获取目标数据源的方法,其特征在于,包括如下步骤:对网页数据进行解析;对解析后的数据进行结构化或半结构化形成可分析数据;基于解析后获得的可用于分析的数据进行数据分析以确定是否需要获得该网页数据;利用数据采集器获取数据源网页数据并存储。2.如权利要求1所述的方法,其特征在于,通过htmlunit进行数据的解析形成字串格式。3.如权利要求1所述的方法,其特征在于,利用htmlparser将html页面中的标签按树形结构解析成一个一个结点,一种类型的结点对应一个类,通过调用其方法访问标签中的内容。4.如权利要求3所述的方法,其特征在于,该方法包括:从页面中提取出子链接;解析网页内容;其中提取页面子链接的步骤为:用被提取的网页的url实例化一个Parser;实例化Filter,设置页面过滤条件;用Parser提取页面中所有通过Filter的结点,得到NodeList;遍历NodeList,调用Node的相应方法得到其中的链接,加入子链接的集合;返回子链接集合;其中解析网页内容的步骤为:读取html文件,获得页面...

【专利技术属性】
技术研发人员:鄢亚东程国艮
申请(专利权)人:中译语通科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1