一种页面内容提取方法和装置制造方法及图纸

技术编号:33843206 阅读:22 留言:0更新日期:2022-06-18 10:26
本发明专利技术公开了一种页面内容提取方法和装置。该方法包括:获取页面对应的目标文档对象模型DOM树;从所述目标DOM树的根元素节点开始,针对所述目标DOM树中的元素节点执行渲染区域去重处理,得到去重DOM树;在所述去重DOM树中,提取每个元素节点的视觉特征;解析并且执行预设的接口模板,通过所述接口模板从多个所述视觉特征中提取所述页面的页面内容;其中,所述接口模板中设置了用于匹配所述页面内容的内容提取条件。本实施例利用视觉特征这一较为稳定的特征来定位元素节点,更加便于理解,不易出现定位失败的问题,而且接口模板是以声明的方式提取页面内容,提取方式便捷易操作。作。作。

【技术实现步骤摘要】
一种页面内容提取方法和装置


[0001]本专利技术涉及互联网
,尤其涉及一种页面内容提取方法和装置。

技术介绍

[0002]页面内容提取是从非格式化数据的HTML(Hyper Text Markup Language,超级文本标记语言)网页中,解析出有用数据,并将有用数据转换成格式化数据的过程。
[0003]目前,页面内容提取主要使用CSS(Cascading Style Sheets,层叠样式表)选择器或者XPATH(Xml Path Language,可扩展标记语言路径语言)路径,在HTML网页对应的DOM(Document Object Model,文档对象模型)树中,定位元素节点,并提取元素节点对应的页面内容。但是,由于页面的DOM树具有易变性,使用CSS选择器或者XPATH路径容易发生定位失败的问题,而且页面样式的复杂度较高且变化较大,使得编码复杂度较高。

技术实现思路

[0004]本专利技术实施例的主要目的在于提供一种页面内容提取方法和装置,以解决现有技术中,由于页面的DOM树具有易变性,使用CSS选择器或者XPATH路径容易发生定位失败的问题。
[0005]针对上述技术问题,本专利技术实施例是通过以下技术方案来解决的:
[0006]本专利技术实施例提供了一种页面内容提取方法,包括:获取页面对应的目标文档对象模型DOM树;从所述目标DOM树的根元素节点开始,针对所述目标DOM树中的元素节点执行渲染区域去重处理,得到去重DOM树;在所述去重DOM树中,提取每个元素节点的视觉特征;解析并且执行预设的接口模板,通过所述接口模板从多个所述视觉特征中提取所述页面的页面内容;其中,所述接口模板中设置了用于匹配所述页面内容的内容提取条件。
[0007]其中,在所述目标DOM树中,提取展示类的元素节点的视觉特征之前,还包括:将所述页面解析为DOM树;在所述DOM树中,确定一个目标元素节点;在所述DOM树中,获取目标DOM树;其中,所述目标DOM树的根元素节点为所述目标元素节点。
[0008]其中,所述针对所述目标DOM树中的元素节点执行渲染区域去重处理,得到去重DOM树,包括:从所述目标DOM树的根元素节点开始,针对所述目标DOM树中的每个父元素节点执行以下操作,得到去重DOM树:比较所述父元素节点以及所述父元素节点的子元素节点;在所述父元素节点的渲染区域和所述子元素节点的渲染区域相同时,在所述目标DOM树中舍弃所述父元素节点;在所述父元素节点的渲染区域覆盖所述子元素节点的渲染区域,并且所述父元素节点仅有所述子元素节点为文本语义类型时,在所述目标DOM树中舍弃所述子元素节点。
[0009]其中,所述在所述去重DOM树中,提取元素节点的视觉特征,包括:针对所述去重DOM树中的每个元素节点执行下钻操作,以便确定所述元素节点对应的视觉特征;其中,所述元素节点对应的视觉特征包括:所述元素节点对应的信息块,或者,所述元素节点对应的信息块集合;所述元素节点对应的信息块集合包括:所述元素节点的每个子元素节点对应
的信息块或者信息块集合;信息块所述信息块是根据所述信息块对应的元素节点的属性信息构建的。
[0010]其中,所述针对所述去重DOM树中的每个元素节点执行下钻操作,包括:在所述元素节点为文本节点或者叶子节点时,根据所述元素节点的属性信息,构建所述元素节点对应的信息块;在所述元素节点存在至少一个子元素节点时,为所述元素节点构建信息块集合,并针对所述元素节点执行以下操作:在所述元素节点的子元素节点为文本节点时,根据所述子元素节点的属性信息,构建所述子元素节点对应的信息块,并将所述子元素节点对应的信息块添加到所述元素节点对应的信息块集合中;在所述元素节点的子元素节点为文本语义类型时,或者,在所述元素节点的子元素节点为非文本语义类型并且所述子元素节点的渲染区域未被遮挡时,为所述子元素节点构建信息块集合,针对所述子元素节点执行所述下钻操作,直到所述下钻操作的对象为叶子节点为止,将所述子元素节点对应的信息块集合添加到所述元素节点对应的信息块集合中。
[0011]其中,在所述构建所述元素节点对应的信息块之后,还包括:根据所述元素节点的节点类型,为所述元素节点对应的信息块标记信息块类型;其中,所述信息块类型用于作为所述内容提取条件中的约束条件;在所述构建所述子元素节点对应的信息块之后,还包括:根据所述子元素节点的节点类型,为所述子元素节点对应的信息块标记信息块类型。
[0012]其中,在所述为所述元素节点构建信息块集合,并针对所述元素节点执行下钻操作的过程中,还包括:根据所述元素节点的各个子元素节点的渲染区域,确定渲染覆盖区域;根据所述元素节点的各个子元素节点的渲染区域以及所述渲染覆盖区域,确定纵向平均距离偏差以及横向平均距离偏差;在所述纵向平均距离偏差大于所述横向平均距离偏差时,将所述元素节点对应的信息块集合确定为列模式信息块集合,并在将所述子元素节点对应的信息块集合添加到所述元素节点对应的信息块集合中之后,对所述元素节点对应的信息块集合进行列排序;在所述纵向平均距离偏差小于或等于所述横向平均距离偏差时,将所述元素节点对应的信息块集合确定为行模式信息块集合,并在将所述子元素节点对应的信息块集合添加到所述元素节点对应的信息块集合中之后,对所述元素节点对应的信息块集合进行行排序;其中,所述列排序和所述行排序用于作为所述内容提取条件中的约束条件。
[0013]其中,所述页面内容为元素节点的属性信息中的元素内容;所述内容提取条件,包括:元素约束条件,匹配约束条件,和/或,提取变换规则;所述解析并且执行接口模板,通过所述接口模板从所述视觉特征中提取所述页面的页面内容,包括:通过解析所述接口模板中的元素约束条件、匹配约束条件和/或提取变换规则,生成状态迁移策略;其中,在所述状态迁移策略中包括至少一个状态节点,每个所述状态节点用于在多个所述视觉特征中匹配一个元素内容;执行所述状态迁移策略,以便通过所述状态迁移策略中的所述至少一个状态节点分别在多个所述视觉特征中提取不同的元素内容。
[0014]其中,在所述状态迁移策略中包括多个分支,每个所述分支包括至少一个状态节点;其中,多个所述分支对应相同的渲染范围和不同的渲染样式;所述执行所述状态迁移策略,包括:分别执行多个所述分支;在执行每个所述分支时,分别执行所述分支中的至少一个状态节点,以便通过所述至少一个状态节点在多个所述视觉特征中提取不同的元素内容。
[0015]本专利技术实施例还提供了一种页面内容提取装置,包括:获取模块,用于获取页面对应的目标文档对象模型DOM树;去重模块,用于从所述目标DOM树的根元素节点开始,针对所述目标DOM树中的元素节点执行渲染区域去重处理,得到去重DOM树;第一提取模块,用于在所述去重DOM树中,提取每个元素节点的视觉特征;第二提取模块,用于解析并且执行预设的接口模板,通过所述接口模板从多个所述视觉特征中提取所述页面的页面内容;其中,所述接口模板中设置了用于匹配所述页面内容的内容提取条件。
[001本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种页面内容提取方法,其特征在于,包括:获取页面对应的目标文档对象模型DOM树;从所述目标DOM树的根元素节点开始,针对所述目标DOM树中的元素节点执行渲染区域去重处理,得到去重DOM树;在所述去重DOM树中,提取每个元素节点的视觉特征;解析并且执行预设的接口模板,通过所述接口模板从多个所述视觉特征中提取所述页面的页面内容;其中,所述接口模板中设置了用于匹配所述页面内容的内容提取条件。2.根据权利要求1所述的方法,其特征在于,在所述目标DOM树中,提取展示类的元素节点的视觉特征之前,还包括:将所述页面解析为DOM树;在所述DOM树中,确定一个目标元素节点;在所述DOM树中,获取目标DOM树;其中,所述目标DOM树的根元素节点为所述目标元素节点。3.根据权利要求1所述的方法,其特征在于,所述针对所述目标DOM树中的元素节点执行渲染区域去重处理,得到去重DOM树,包括:从所述目标DOM树的根元素节点开始,针对所述目标DOM树中的每个父元素节点执行以下操作,得到去重DOM树:比较所述父元素节点以及所述父元素节点的子元素节点;在所述父元素节点的渲染区域和所述子元素节点的渲染区域相同时,在所述目标DOM树中舍弃所述父元素节点;在所述父元素节点的渲染区域覆盖所述子元素节点的渲染区域,并且所述父元素节点仅有所述子元素节点为文本语义类型时,在所述目标DOM树中舍弃所述子元素节点。4.根据权利要求1所述的方法,其特征在于,所述在所述去重DOM树中,提取元素节点的视觉特征,包括:针对所述去重DOM树中的每个元素节点执行下钻操作,以便确定所述元素节点对应的视觉特征;其中,所述元素节点对应的视觉特征包括:所述元素节点对应的信息块,或者,所述元素节点对应的信息块集合;所述元素节点对应的信息块集合包括:所述元素节点的每个子元素节点对应的信息块或者信息块集合;信息块所述信息块是根据所述信息块对应的元素节点的属性信息构建的。5.根据权利要求4所述的方法,其特征在于,所述针对所述去重DOM树中的每个元素节点执行下钻操作,包括:在所述元素节点为文本节点或者叶子节点时,根据所述元素节点的属性信息,构建所述元素节点对应的信息块;在所述元素节点存在至少一个子元素节点时,为所述元素节点构建信息块集合,并针对所述元素节点执行以下操作:在所述元素节点的子元素节点为文本节点时,根据所述子元素节点的属性信息,构建所述子元素节点对应的信息块,并将所述子元素节点对应的信息块添加到所述元素节点对应的信息块集合中;
在所述元素节点的子元素节点为文本语义类型时,或者,在所述元素节点的子元素节点为非文本语义类型并且所述子元素节点的渲染区域未被遮挡时,为所述子元素节点构建信息块集合,针对所述子元素节点执行所述下钻操作,直到所述下钻操作的对象为叶子节点为止,将所述子元素节点对应的信息块集合添加到所述元素节点对应的信息块集合中。6.根据权利要求5所述的方法,其特征在于,在所述构建所述元素节点...

【专利技术属性】
技术研发人员:何熠皓
申请(专利权)人:国信君和北京科技有限公司
类型:发明
国别省市:

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

1