本发明专利技术公开了一种基于HTML文本对象模型的数据采集方法和系统,其中,所述方法包括:监听浏览器中鼠标坐标位置;拦截浏览器的所有冒泡事件;利用JS脚本函数,递归DOM树节点,判断当前DOM元素对象模型所在区域范围;获取当前DOM元素的唯一标识、渲染位置以及样式信息;按所有同类元素页面排版生成二维数组;将排版的二维数组发送至浏览器控制台,浏览器控制台监听捕获当前二维数组,并将其渲染至系统组件属性中。该方法在使用时,可以由程序算法自动发现模板,即使目标网站的页面布局发生变化,也无需修改程序或配置,即可根据HTML文本对象模型,推导新的模板,在资源开销和性能上更具有优势。优势。优势。
【技术实现步骤摘要】
一种基于HTML文本对象模型的数据采集方法和系统
[0001]本专利技术涉及数据采集领
,具体地,涉及一种基于HTML文本对象模型的数据采集方法和系统。
技术介绍
[0002]随着互联网技术的飞速发展,互联网上的信息也以指数级增长,目前以网页为单位基于关键字匹配的信息检索方式已经很难满足人们日益增长的对信息的渴求。例如:有人想在网上查找价格在10到20万之间的汽车的相关信息,传统的搜索引擎就很难完成这种搜索。要满足这种信息检索的需求就必须将网页中的元数据提起出来,并进行存储和索引。然而从网页中提取元数据并非易事,因为互联网的页面都是用松散的HTML来组织的,而HTML语法验证不严格,结构松散,语义和表现格式混合在一起,这给网页数据抽取带来了很大的困难。
[0003]目前多数的网页正文内容抽取算法都是以文本密度、标签密度为特征进行分类,并不考虑同类网页的正文内容标签相同内容不同的特性,对于正文内容短的问题处理结果不精准,无法通过一个元素节点精准的筛选出其余同类节点进行采集。
[0004]当前前端技术发展相当迅速,前端框架种类繁多,页面形势多样化,没有固定的模板形势。现市面上绝大部分基于html页面采集的技术大部分基于一套或多套模板,实用性较差,没有办法实现对所有类型网页进行识别采集,这种方法对每个网站都要写不同的模板,而且一旦目标网站的页面布局发生变化就必须修改模板,所以对模板维护的成本极高。
[0005]因此,提供一种在使用过程中可以解决上述技术问题的基于HTML文本对象模型的数据采集方法和系统是本专利技术亟需解决的问题。
技术实现思路
[0006]针对上述技术问题,本专利技术的目的是克服现有技术中绝大部分基于html页面采集的技术大部分基于一套或多套模板,实用性较差,没有办法实现对所有类型网页进行识别采集,这种方法对每个网站都要写不同的模板,而且一旦目标网站的页面布局发生变化就必须修改模板,所以对模板维护的成本极高的问题,从而提供一种在使用过程中可以由程序算法自动发现模板,即使目标网站的页面布局发生变化,也无需修改程序或配置,即可根据HTML文本对象模型,推导新的模板,在资源开销和性能上更具有优势的基于HTML文本对象模型的数据采集方法和系统。
[0007]为了实现上述目的,本专利技术提供了一种基于HTML文本对象模型的数据采集方法,所述方法包括:
[0008]监听浏览器中鼠标坐标位置,以获取当前鼠标点击位置的DOM元素对象模型;
[0009]拦截浏览器的所有冒泡事件,以达到限制浏览器对人为操作的反馈;
[0010]利用JS脚本函数,递归DOM树节点,判断当前DOM元素对象模型所在区域范围,根据范围元素标签类型执行同类元素识别算法分支;
[0011]获取当前DOM元素的唯一标识、渲染位置以及样式信息,在已获取的区域范围内获取当前元素相同以及类似的DOM元素对象;
[0012]根据当前DOM元素的类型获取当前DOM元素的文本对象内容,并识别所在位置坐标纵列的表头以及标题信息;
[0013]按所有同类元素页面排版生成二维数组;其中,
[0014]将已识别的标题和表头信息直接作为key,
[0015]将未识别表头标题信息的以字段列数为key。
[0016]将排版的二维数组发送至浏览器控制台,浏览器控制台监听捕获当前二维数组,并将其渲染至系统组件属性中。
[0017]优选地,所述并将其渲染至系统组件属性中包括以下步骤:
[0018]以可视化列表的形式渲染在系统组件属性中。
[0019]优选地,所述将排版的二维数组发送至浏览器控制台,浏览器控制台监听捕获当前二维数组,并将其渲染至系统组件属性中之后,所述方法还包括:
[0020]在系统中对已采集的可视化的列表数据进行处理。
[0021]优选地,所述在系统中对已采集的可视化的列表数据进行处理包括:
[0022]编辑处理、新增处理以及删除处理。
[0023]优选地,在监听浏览器中鼠标坐标位置之前,所述方法还包括:
[0024]指定欲操作的目标网页在浏览器中。
[0025]本专利技术还提供了一种自动化采集网页数据的系统,所述系统包括:
[0026]监听模块,用于监听浏览器中鼠标坐标位置,以获取当前鼠标点击位置的DOM元素对象模型;
[0027]拦截模块,用于拦截浏览器的所有冒泡事件,以达到限制浏览器对人为操作的反馈;
[0028]脚本引擎模块,用于执行以下步骤:
[0029]利用JS脚本函数,递归DOM树节点,判断当前DOM元素对象模型所在区域范围,根据范围元素标签类型执行同类元素识别算法分支;
[0030]获取当前DOM元素的唯一标识、渲染位置以及样式信息,在已获取的区域范围内获取当前元素相同以及类似的DOM元素对象;
[0031]根据当前DOM元素的类型获取当前DOM元素的文本对象内容,并识别所在位置坐标纵列的表头以及标题信息;
[0032]按所有同类元素页面排版生成二维数组;其中,
[0033]将已识别的标题和表头信息直接作为key,
[0034]将未识别表头标题信息的以字段列数为key;
[0035]流程控制模块,用于定制具体页面上的采集、填报内容,以及可实现采集流程自定义、采集内容自定义。
[0036]根据上述技术方案,本专利技术提供的基于HTML文本对象模型的数据采集方法和系统在使用时的有益效果为:实现一种成本低、效率高的自动化网页数据采集方法,解决了“信息孤岛”的痛点,可以完全实现所见及所得,页面上可见的内容都可以进行有效有序的采集,充分释放了有限的人力资源,数据的处理效率相较于以前的人工上报至少提高了10倍,
也极大的减少了手工操作的风险。
[0037]本专利技术的其他特征和优点将在随后的具体实施方式部分予以详细说明;而且本专利技术中未涉及部分均与现有技术相同或可采用现有技术加以实现。
附图说明
[0038]附图是用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本专利技术,但并不构成对本专利技术的限制。在附图中:
[0039]图1是本专利技术的一种优选的实施方式中提供的基于HTML文本对象模型的数据采集方法的流程图一;
[0040]图2是本专利技术的一种优选的实施方式中提供的基于HTML文本对象模型的数据采集方法的流程图二;
[0041]图3是本专利技术的一种优选的实施方式中提供的基于HTML文本对象模型的数据采集系统的结构框图。
[0042]附图标记说明
[0043]1监听模块2拦截模块
[0044]3脚本引擎模块4流程控制模块
具体实施方式
[0045]以下结合附图对本专利技术的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本专利技术,并不用于限制本专利技术。
[0046]如图1
‑
2本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于HTML文本对象模型的数据采集方法,其特征在于,所述方法包括:监听浏览器中鼠标坐标位置,以获取当前鼠标点击位置的DOM元素对象模型;拦截浏览器的所有冒泡事件,以达到限制浏览器对人为操作的反馈;利用JS脚本函数,递归DOM树节点,判断当前DOM元素对象模型所在区域范围,根据范围元素标签类型执行同类元素识别算法分支;获取当前DOM元素的唯一标识、渲染位置以及样式信息,在已获取的区域范围内获取当前元素相同以及类似的DOM元素对象;根据当前DOM元素的类型获取当前DOM元素的文本对象内容,并识别所在位置坐标纵列的表头以及标题信息;按所有同类元素页面排版生成二维数组;其中,将已识别的标题和表头信息直接作为key,将未识别表头标题信息的以字段列数为key;将排版的二维数组发送至浏览器控制台,浏览器控制台监听捕获当前二维数组,并将其渲染至系统组件属性中。2.根据权利要求1所述的基于HTML文本对象模型的数据采集方法,其特征在于,所述并将其渲染至系统组件属性中包括以下步骤:以可视化列表的形式渲染在系统组件属性中。3.根据权利要求2所述的基于HTML文本对象模型的数据采集方法,其特征在于,所述将排版的二维数组发送至浏览器控制台,浏览器控制台监听捕获当前二维数组,并将其渲染至系统组件属性中之后,所述方法还包括:在系统中对已采集的可视化的列表数据进行处理。4.根据权利要...
【专利技术属性】
技术研发人员:张宇光,张豪,
申请(专利权)人:安徽数安桥数据科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。