一种Web结构化数据快速提取方法及系统与流程

文档序号:18030451发布日期:2019-06-28 22:36阅读:691来源:国知局
一种Web结构化数据快速提取方法及系统与流程

本发明与网页数据爬取相关,涉及网站网页结构和文件存取算法领域,是一种利用自适应算法和标签数据匹配的网页结构化数据提取方法,能够对指定提取的网页数据项进行精准快速地提取。



背景技术:

现有的网页数据获取方式主要分两种,一种是先获取全网页面再本地提取数据,另一种是直接提取页面目标数据存储在本地。

先获取全网页面再本地提取数据,即针对目标网站所有的目标页面进行访问,在得到目标页面的反馈后对目标页面的所有信息进行存储。所有页面信息存储到本地存储空间后,再对需要提取的目标数据项进行本地过滤提取。这种方式的优点在于兼容性强,性能稳定,属于工业化思想,是目前各大公司正在使用的主流方式,例如360、京东云等。兼容性在于这种方式容易实现分布式页面访问和获取,可以运行上千台主机同时对目标网站的目标网页进行访问,属于蛮力算法,不需要过多的网址路径优化,是以分布式主机的数量作为补偿。并且每台主机可同时请求访问不同的目标页面,这样既节省了加载目标网页的时间又可以适用不同目标网站,而不需要改动,所以具有很好的兼容性。稳定性在于这种方式在提取目标数据项之前,已经把数据项所在的所有网页下载到了本地。需要提取的数据项的结构和字段等逻辑可以在本地处理。有需求的工作人员在本地标注好目标数据项之后,再由本地服务器进行统一计算处理,得到目标数据。这种方式的缺陷在于使用该方式进行数据提取的门槛较高,需要有大量的机器集群、高速的带宽、大量的本地存储空间和强大的算力。这种方式对资源的浪费也比较严重,主要体现在大量的和目标数据无关的网页数据都要占用带宽和流量下载到本地,并且本地也要提供大量的存储空间来存储大量和提取数据无关的网页页面信息。

直接提取页面目标数据存储在本地,即在访问页面的过程中直接进行数据过滤,一次性提取目标数据后存储在本地,例如scrapy框架等。这种方式只需要服务器进入爬取网站后打开目标网页,在加载目标网页是页面信息中提取目标信息。直接提取页面目标数据存储在本地,较高地利用了网络带宽和本地存储空间,但是在提取数据的兼容性和稳定性上却不如第一种方式,由于目标数据项的提取是在加载页面的过程中完成的,所以不同结构的网页对数据项的提取逻辑也不一样。在相同页面结构的情况下可以支持访问,在不同页面结构的情况下,比如说不同网站,就需要重新构建网页数据提取逻辑。由于目标数据项的提取依赖于网页的加载,一旦网页加载失败,数据项的提取也会失败,所以提取性能不稳定。另外,直接提取页面目标数据存储在本地,网页加载延迟和页面数据过滤时间都叠加在了单条数据的提取时间上,使得单条数据的提取速度较慢。

综上所述,以上两种方法存在带宽流量浪费、本地存储空间浪费和兼容性低、稳定性低等问题,并且这些问题都没有得到相互融合和改善。



技术实现要素:

本发明针对网页数据提取的问题,克服上述现有相应方法存在的不足,提出一种web结构化数据快速提取方法及系统,利用自适应算法和标签数据匹配的网页结构化数据提取方法,能够对指定提取的网页数据项进行精准快速地提取。

为解决上述技术问题,本发明采用的技术方案为:

一种web结构化数据快速提取方法,其步骤包括:

1)层次遍历要访问的目标网站页面当中的网址链接,并以列表的形式记录所有网址和网址跳转顺序(即网址逻辑);

2)从上述列表中识别目标网页的网址;

3)通过匹配确定目标网页所在网站的各个网址跳转顺序列表当中的位置;

4)进行多次访问网址跳转顺序列表中的目标网页,根据贪心随机自适应搜索算法记录最优网址跳转顺序;

5)根据上述最优网址跳转顺序访问目标网页,层次遍历目标页面所有数据项标签;

6)找到所有目标数据项标签;

7)对比多个目标数据项标签,找出最短路径;

8)根据上述最优网址跳转顺序和最短路径爬取目标网页的目标数据。

一种web结构化数据快速提取系统,包括:

包括确定目标模块,用于对要提取的目标数据进行属性确认,包括确认目标网站的网址、目标网页的网址、目标网页的页面标签;

网址逻辑生成模块,用于归纳目标网页在目标网站中的关系,找出访问目标网页的最优网址跳转顺序;

标签路径生成模块,用于对目标网页的页面标签进行匹配,找出目标数据项标签的最短路径;

进程访问网页模块,用于根据最优网址跳转顺序访问目标网页;

线程提取数据模块,用于根据最短路径对目标网页上的目标数据进行提取。

本发明在给出确定的目标网站、目标网址和目标数据的基础上,通过试探性地访问网站页面,解析目标网站的网站结构,然后通过自适应算法归纳出目标网站当中目标网址之间的网址跳转顺序,并在进入目标网页之后,自动匹配网页的页面数据标签和目标数据的数据项标签,然后搜索出目标数据项标签的最短路径,进行目标数据的提取。通过网址跳转顺序的优化和数据提取路径的优化,可以先获取目标网页再本地提取数据或者直接提取目标网页的目标数据存储在本地,使得本发明在数据提取效率上远高于传统的两种方式。

附图说明

图1是实施例中的一种web结构化数据快速提取系统框架图。

图2是实施例中的一种web结构化数据快速提取方法流程图。

具体实施方式

为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。

图1是本实施例提出的一种web结构化数据快速提取系统的框架图,具体包括如下模块:

102:确定目标模块,负责对要提取的目标数据进行相关属性的确认,包括确认需要爬取目标网站的网址、目标网页的网址、目标网页的页面标签;

103:网址逻辑生成模块,负责对目标网站结构的解析,归纳出目标网页在目标网站中的关系,给出访问目标网页的最优网址跳转顺序,方便快速进入目标网页;

104:标签路径生成模块,负责对目标网页的页面标签进行匹配,找到目标数据项标签的最短路径,方便快速提取目标数据;

105:进程访问网页模块,负责进程在获得最优网址跳转顺序之后,对目标网页提出访问请求,并加载访问页面;

106:线程提取数据模块,负责在进程加载目标网页的基础上,线程根据标签路径生成模块给出的最短路径,对目标网页上的目标数据进行提取。

图2是本实施例提出的一种web结构化数据快速提取方法流程图,包括如下步骤:

202:在给定特定格式的条件下,该格式可由用户自定义,例如利用https作为划分关键字进行直接拼接,支持扩展,根据相应格式,确定目标网站的网址和目标网页的网址,将两个网址按先后顺序进行拼接并输入;

203:层次遍历目标网站页面当中的网址链接,并以列表形式记录网站内部的网址和访问的网址跳转顺序;

204:在上述列表当中识别目标网页的网址,并记录对应的网址跳转顺序;

205:判断在上述已识别的目标网页的网址中是否已记录有至少一条的目标网页的网址跳转顺序,如果是则进入206,否则返回203继续遍历目标网站并记录网址跳转顺序;

206:在已有记录的目标网页网址跳转顺序当中,按目标网站到目标网页访问的先后顺序,将网址直接拼接成字符串,生成访问目标网页的网址跳转顺序;

207:采取贪心随机自适应搜索算法来挑选合并出最短的访问目标网页的网址跳转顺序,作为最佳的从目标网站访问目标网页的网址跳转顺序,并记录下来;

208:测试已生成的网址跳转顺序,使用最少跳转数作为验证网址跳转顺序是否已达到优化标准,达到则进入209,否则返回207继续生成优化的网址跳转顺序;

209:对目标网页进行访问请求,并加载目标网页的页面信息;

210:对目标网页的页面信息进行结构归类,即把目标网页上所有可访问的数据项进行记录,并记录每个数据项所对应的数据项标签,把数据项标签按照展开的层次结构进行归类。并记录已经归类的数据项和数据项标签信息,作为遍历目标数据的预处理;

211:遍历已经记录下来的所有数据项信息,查找目标数据项,并记录目标数据所对应的所有标签,每个数据项所拥有的所有数据项标签的集合即为标签结构信息;

212:在已记录下来的目标数据项标签中,统计目标数据项标签的个数,如果已经找到所有目标数据项标签,则进入213,如果查找后有缺失,则返回211继续遍历标签数据;

213:在已记录的标签数据当中,提取标签的结构信息,并记录下标签结构信息;

214:在已记录下的标签结构信息中,再次对标签结构信息进行归类,即按照数据项标签展开的层次结构进行相似性归类;

215:在已归类的标签结构信息中,使用自适应原则选取合并标签结构,合并相同路径,并把标签结构转化成树型结构的格式,生成最短路径;

216:使用标签结构信息深度(即路径长度)最浅的评估标准对已生成的最短路径进行比较测试验证,通过互相之间的深度比较达到该标准,如果达到测试标准,则进入217,否则返回213继续提取标签结构信息;

217:在得到最优网址跳转顺序和最短路径的基础上,再次启动数据爬取进程,访问需要提取数据的一系列目标网页。

以测试网站(好大夫网站)为例:

表1.各类web数据提取方法的结果对比

由上述表1可知,相较于传统方法,本发明方法在提取web结构化数据时需要更少的主机个数和进程个数,较少的访问网页数和提取数据条数,爬去的时间更短,存储空间利用率更高,由此可见本发明方法能够更快地提取web结构化数据。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1