一种自动抽取列表页的技术方案解决方案页
优采云 发布时间: 2021-08-17 23:14
一种自动抽取列表页的技术方案解决方案页
本发明涉及网络技术领域,尤其涉及一种自动提取列表页面的方法。
背景技术:
传统的列表页面提取技术主要是规则的形式,比较常用的是通过正则表达式、xpath、css选择器,甚至是手动的方式来获取页面采集down的信息。
单个网页可以通过正则表达式等方法准确获取采集想要的信息,而正则表达式和css选择器等方法本质上是人们通过观察网页源代码的规则总结出来的。然后使用这些规则进行提取。这种方法很难在不同结构的网页上用相同的规则集提取,因为不同的网页需要不同的规则来支持提取。当用户需要采集大量网页时,需要依靠人工编写大量规则,这种效率不仅低,甚至上千甚至几万个网站,仅仅依靠手动已经完全不可能了。不仅如此,依赖规则的抽取方式仅限于网页本身。 网站修改后,原来的规则将不再适用,需要手动重写规则,这也使得一些依赖开源信息采集的项目维护成本变得极高。<//p
p技术实现要素:/p
p本发明要解决的技术问题是提供一种适用性强、效率高的列表页面自动提取方法。/p
p为解决上述技术问题,本发明的技术方案是:一种自动提取列表页面的方法,包括以下步骤:/p
p(1)dom树生成:得到网页源码为采集网站;将网页源码解析成dom树;根据dom树进行前序遍历,并记录dom树中的每一片叶子元素的节点路径;提取并保存元素的节点路径,带文本;/p
p(2)获取1)中提取文本的元素节点的位置信息,根据元素节点的位置信息进行评分,过滤掉不符合列表视觉可能性的元素节点页面;/p
p(3)根据节点路径的相似度以及与满足列表页面信息约束的节点特征的相似度,判断多个节点是否有相似指纹,对指纹相似的节点进行分类聚合。列表页信息至少包括标题和地址链接,指纹相似意味着不同节点满足一定的约束条件,构成列表页信息;/p
p(4)对多个具有多个相似指纹的节点进行分类聚合,可以将完整的列表页信息组成节点块,形成列表页的深度指纹;/p
p(5)从列表页的深度指纹中提取出标题和地址链接的相似指纹;/p
p(6)Extraction 列表页,返回封装结果。/p
p作为优选的技术方案,步骤(2)具体包括:/p
p(2.1)采集html 网页的css和js文件获取节点位置信息;/p
p(2.2)每页解析后计算dom树元素节点的像素位置;/p
p(2.3) 判断元素节点是否满足列表页面的视觉可能性,具体包括:如果元素节点是隐藏节点,则元素节点是无效节点;如果元素的像素node 网页左上角位置的像素位置小于设置的阈值,元素节点为无效节点;元素节点的像素位置离网页中心点越远,元素节点的得分越低,元素节点的得分与列表页面的提取精度有关。/p
p作为优选的技术方案,在步骤(3),满足列表页面信息约束的节点特征包括节点属性标签和节点文本信息标签,其中节点属性标签的相似度和方差为节点属性成反比,节点属性的方差:/p
p其中a代表单个节点的属性向量,b代表该类别下所有节点的平均属性向量;/p
p节点文本信息的相似度与文本词数的方差成反比,则节点文本词数的方差:/p
p其中,表示所有节点中文本信息词的平均密度,n表示节点数;/p
p作为优选的技术方案,步骤4还包括:/p
p(4.1)计算节点路径的预深度比,即节点深度指纹组成的节点块共有的节点路径长度与最长节点路径长度的比值:/p
p(4.2)对深度指纹聚合的节点块进行打分和排序,计算出最可能的列表页深度指纹。节点块的得分:/p
p其中αi为衰减系数。/p
p作为优选的技术方案,在步骤(5),标题指纹是指满足标题约束条件的特征,提取满足标题约束条件的相似指纹,得到标题文字。/p
pp>
作为优选的技术方案,还包括设置列表页面提取规则和通过提取规则提取列表页面的步骤。
由于采用了上述技术方案,本发明的有益效果是本发明可以应用于大量的互联网网站列表页面提取,不限于繁琐冗余的规则,并且只需要通过网页网址或源代码。自动提取列表页的标题、链接等,由于本发明对大量的列表页具有普遍适用性,即使出现网站改版,基于网页结构的提取方法也可以仍然有效,节省了重写提取规则和维护规则产生的时间成本和人工成本。
在基于网页的结构提取算法中,还加入了网页元素的位置像素信息作为特征,更加符合人们对列表页面的感官判断,使得提取结果更加符合与目标。
图纸说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中需要用到的附图进行简单介绍。显然,在以下描述中,附图只是本发明的一些实施例。对于本领域普通技术人员来说,基于这些图,无需创造性劳动,还可以得到其他图。
图1是本发明实施例的流程图。
具体实现方法
如图1所示,一种自动提取列表页面的方法包括以下步骤:
(1)dom 树生成:
(1.1)获取wait采集网站的网页源码;
(1.2)将网页源码解析成dom树;
(1.3)根据dom树进行预遍历,记录dom树中每个叶子元素的节点路径;(1.4)提取并保存带有文本的元素节点路径。
(2)获取1)中提取文本的元素节点的位置信息,根据元素节点的位置信息进行评分,过滤掉不符合列表视觉可能性的元素节点页面:具体:
(2.1)采集html 网页css和js文件,获取节点位置信息;
(2.2)每页解析后计算dom树元素节点的像素位置;
(2.3)判断元素节点是否满足列表页面的视觉可能性,如果元素节点为隐藏节点,则元素节点为无效节点;
如果元素节点的像素位置与网页左上角像素的距离小于设置的阈值,则元素节点为无效节点;
元素节点的像素位置离网页中心点越远,
宽度距离:
高度距离:
其中dis(whole_width)代表整个html页面的宽度,dis(whole_height)代表整个html页面的高度。
元素节点的得分越低,元素节点的得分与列表页面的提取精度有关。
(3)根据节点路径的相似度和与满足列表页面信息约束的节点特征的相似度,判断多个节点是否有相似指纹,对指纹相似的节点进行分类聚合,其中列表页面信息至少包括标题和地址链接,指纹相似意味着不同节点满足一定的约束条件,构成列表页面信息;
(3.1)计算节点路径的相似度:
dom树的叶子节点路径是否相似,例如从根节点计算某个“摘要”节点的路径,表示为:0-5-0-2-0-2-0 -3-0,其他“汇总”节点有:0-5-0-2-1-2-0-3-0、0-5-0-2-2-2-0-3-0等.,可以看作是0 -5-0-2-x-2-0-3-0,并将这种形式定义为节点相似度指纹。当不同“汇总”节点的路径只有一个差异时,我们认为它们的节点路径非常相似。
标题节点、摘要节点、时间节点或作者节点都可以通过这种方式计算节点路径的相似度。当相似度很高时,可以认为是一种,使用0-5-0-2-保存为x-2-0-3-0这种格式。
(3.2)计算节点特征的相似度
列表页信息受节点属性标签和节点文本信息标签限制。
计算节点属性的相似度:每个节点都会被一系列的属性标签修改,比如class、id、name等,相似的节点往往有相同或非常相似的属性标签。用属性的方差来表示相似节点的属性差异。差异越小越好。
其中,节点属性标签相似度与节点属性的方差成反比,则节点属性的方差:
其中a代表单个节点的属性向量,b代表该类别下所有节点的平均属性向量;
计算节点文本信息的相似度:对于list页的title、summary、time等文本的文本构成,由于篇幅限制,通常字数成一定比例,相似度节点文本信息的大小与文本词数的方差成正比。反之,节点文本中词数的方差:
其中,表示所有节点中文本信息词的平均密度,n表示节点数;
(4)将多个具有多个相似指纹和相似指纹的节点进行分类聚合,将可以形成完整列表页面信息的相似指纹划分为节点块,形成列表页面的深度指纹。相似指纹将是标题节点和摘要节点. , 时间节点合并为一个类别,节点深度指纹是将标题类别、总结类别、练习类别组合成一个更完整的类别。
第 4 步还包括:
(4.1)计算节点路径的预深度比,即节点深度指纹组成的节点块共有的节点路径长度与最长节点路径长度的比值:
例如:如果节点深度指纹为0-5-0-2-x-2-0,则由以下相似路径的节点组成:
0-5-0-2-x-2-0-1; 0-5-0-2-x-2-0-0; 0-5-0-2-x-2-0-3 -0; 0-5-0-2-x-2-0; 0-5-0-2-x-2-0-2。
深度指纹为0-5-0-2-x,值为5,最长为0-5-0-2-x-2-0-3-0,值为9,比率为 5/ 9
(4.2)对深度指纹聚合的节点块进行打分和排序,计算的最有可能是列表页面的深度指纹。
深度指纹一般有更多相似的指纹,因为一般的列表页会收录标题、地址链接、摘要、发表时间、作者等,至少也会收录标题和地址链接。
列表页面中每个相似指纹节点的html修改属性和字符数比较接近。
列表页一般在整个页面的中央。
更多的指纹是通过每个相似指纹的累计值来完成的,但是因为结构相似,列表页中会出现列表页,列表页一般收录2到5个相似指纹,所以加了衰减系数在积累过程中可以避免因目录页导致的高分。根据实验,衰减系数设置为0.7。
节点区块的得分:
f(x)=ratio(节点前端路径的比例)×∑σ(attr)σ(word)αi;
其中αi为衰减系数。
(5)从列表页的深度指纹中提取出标题和地址链接的相似指纹;
标题指纹是指满足标题约束条件的特征,提取满足标题约束条件的相似指纹,得到标题文本。
标题的指纹一般满足以下约束:
a) 标题在节点路径的上半部分;
b) 标题字数一般在5-20个左右;
c) 标题一般为粗体;
d) 标题通常有一个地址链接。
通过上述元素选择与标题相似的指纹,得到标题文本。
(6)Extraction 列表页,返回封装结果。
本发明还可以设置列表页提取规则,选择通过提取规则或通过网络结构提取列表页。根据网络结构提取列表页面,可以选择是使用位置信息提取列表页面,还是直接计算节点特征相似度,提取相似指纹。
以上显示和描述了本发明的基本原理、主要特征和优点。本领域技术人员应当理解,本发明不受上述实施例的限制。上述实施例和描述仅说明了本发明的原理。在不脱离本发明的精神和范围的情况下,本发明可以有各种变化和改进,均落入本发明所要求保护的范围内。本发明所要求的保护范围由所附权利要求书及其等效内容限定。