一种Web网页相似元素查找方法及系统与流程

allin2023-02-09  138


一种web网页相似元素查找方法及系统
技术领域
1.本发明涉及计算机技术领域,特别指一种web网页相似元素查找方法及系统。


背景技术:

2.在运行跨境电商利用rpa进行自动化运营过程中,时常需要获取web网页上所有的相似元素,进而对同质的信息批量提取、批量操作。
3.从web网页中的一个dom元素的视角来看,如果不在同一个dom树层级,无法直接通过兄弟结点来获取当前web网页上与自身同质相似的元素。以订单表格为例,从web网页中一个表格中的一个单元格为视角,如果要获取到同质相似的元素,即其它行的同列单元格,并不是简单的访问一次父节点、一次兄弟结点即可获取到的。
4.针对web网页相似元素的查找,传统上存在如下两种方法:
5.方法一:
6.根据待查模板元素的dom路径或者css选择器语法的路径,使用css选择器能直接通过dom的api获取对应路径的所有结点,作为待选的相似结点进行后续操作。以图3为例,目标元素[8]的dom路径是:body》section》article》label,如果直接使用dom的api可以获取到元素[7]、元素[8]、元素[9]、元素[11]。
[0007]
如果使用dom路径,会获取到元素[7],虽然元素[7]与元素[8]的dom路径相同,但并不是相似元素。
[0008]
如果使用css选择器语法的路径,添加额外的信息,例如在元素[8]上有额外的属性(通常是class属性,一般相似元素都有一样的某些属性),假设为[class='x'],再通过以下路径来获取相似元素:
[0009]
body》section》article》label[attribute='x'];
[0010]
该方法虽然可以避免获取到元素[7],但是在实际生产环境中存在以下问题:1、class的选取没有自动参考依据,需要人工介入选取;2、class在相似元素中属性的值并不完全一致,经常会是元素[7]的属性值是xxx_01,元素[8]的属性值是xxx_02;3、如果只判断是否存在class是没有意义的,因为大量的元素也都有这个属性,很容易检出到其它不相干的元素。
[0011]
方法二:
[0012]
获取至少2个待查模板元素,通过2个待查模板元素的dom路径,提取出路径的差异点,进而定位2个待查模板元素的最小公共dom层级,即该层dom开始分叉相似元素,最后通过差异路径点后续的相同路径,即可获取到全部的相似元素。
[0013]
以图3为例,元素[8]和元素[9]的dom路径如下:
[0014]
元素[8]:body》section:nth-child(1)》article:nth-child(0)》label;
[0015]
元素[9]:body》section:nth-child(1)》article:nth-child(1)》label;
[0016]
其中nth-child表示该层元素是本层级的第几个元素;
[0017]
通过比对元素[8]和元素[9]的dom路径,即可定位到article这层是dom路径分叉
点,作为最小公共dom层级,相似元素就可以通过这层来进行寻找,进而找到元素[11]。
[0018]
但是,该方法存在如下缺点:1、需要至少2个待查模板元素作为输入,在rpa的使用中意味着需要用户执行更多的定位与捕获操作;2、如果解析出的公共层级存在其它非相似元素,容易被误判为相似元素。
[0019]
因此,如何提供一种web网页相似元素查找方法及系统,实现提升相似元素匹配的精度以及便捷性,成为一个亟待解决的技术问题。


技术实现要素:

[0020]
本发明要解决的技术问题,在于提供一种web网页相似元素查找方法及系统,实现提升相似元素匹配的精度以及便捷性。
[0021]
第一方面,本发明提供了一种web网页相似元素查找方法,包括如下步骤:
[0022]
步骤s10、获取目标元素,并对所述目标元素进行校验;
[0023]
步骤s20、获取所述目标元素的第一子孙元素结构以及同级的兄弟元素;
[0024]
步骤s30、提取所述目标元素的第一特征向量以及各兄弟元素的第二特征向量;
[0025]
步骤s40、分别计算各所述第二特征向量与第一特征向量的余弦相似度,基于所述余弦相似度对各兄弟元素进行筛选;
[0026]
步骤s50、获取筛选出的所述兄弟元素的第二子孙元素结构,基于所述第一子孙元素结构以及第二子孙元素结构查找相似元素。
[0027]
进一步地,所述步骤s10具体为:
[0028]
获取目标元素,判断所述目标元素是否为根元素,若是,则输出无相似元素的查找结果;若否,则进入步骤s20。
[0029]
进一步地,所述步骤s30中,所述第一特征向量以及第二特征向量的提取步骤如下:
[0030]
获取同级目标元素和兄弟元素的元素名称、属性名称以及属性值,基于本元素是否存在对应的元素名称、属性名称以及属性值进行赋值,进而完成第一特征向量以及第二特征向量的提取。
[0031]
进一步地,所述步骤s40具体为:
[0032]
设定一第一相似度阈值,分别计算各所述第二特征向量与第一特征向量的余弦相似度,筛选出余弦相似度大于所述第一相似度阈值的兄弟元素。
[0033]
进一步地,所述步骤s50具体为:
[0034]
设定一第二相似度阈值,获取筛选出的各所述兄弟元素的第二子孙元素结构;
[0035]
判断是否存在所述第一子孙元素结构与第二子孙元素结构的结构相似度大于第二相似度阈值的兄弟元素,若是,则选取对应的所述兄弟元素作为相似元素,并输出携带所述相似元素的查找结果;若否,则查找所述目标元素的父级元素,将所述父级元素作为新的目标元素,并进入步骤s10。
[0036]
第二方面,本发明提供了一种web网页相似元素查找系统,包括如下模块:
[0037]
目标元素校验模块,用于获取目标元素,并对所述目标元素进行校验;
[0038]
兄弟元素获取模块,用于获取所述目标元素的第一子孙元素结构以及同级的兄弟元素;
[0039]
特征向量提取模块,用于提取所述目标元素的第一特征向量以及各兄弟元素的第二特征向量;
[0040]
余弦相似度计算模块,用于分别计算各所述第二特征向量与第一特征向量的余弦相似度,基于所述余弦相似度对各兄弟元素进行筛选;
[0041]
相似元素查找模块,用于获取筛选出的所述兄弟元素的第二子孙元素结构,基于所述第一子孙元素结构以及第二子孙元素结构查找相似元素。
[0042]
进一步地,所述目标元素校验模块具体为:
[0043]
获取目标元素,判断所述目标元素是否为根元素,若是,则输出无相似元素的查找结果;若否,则进入兄弟元素获取模块。
[0044]
进一步地,所述特征向量提取模块中,所述第一特征向量以及第二特征向量的提取步骤如下:
[0045]
获取同级目标元素和兄弟元素的元素名称、属性名称以及属性值,基于本元素是否存在对应的元素名称、属性名称以及属性值进行赋值,进而完成第一特征向量以及第二特征向量的提取。
[0046]
进一步地,所述余弦相似度计算模块具体为:
[0047]
设定一第一相似度阈值,分别计算各所述第二特征向量与第一特征向量的余弦相似度,筛选出余弦相似度大于所述第一相似度阈值的兄弟元素。
[0048]
进一步地,所述相似元素查找模块具体为:
[0049]
设定一第二相似度阈值,获取筛选出的各所述兄弟元素的第二子孙元素结构;
[0050]
判断是否存在所述第一子孙元素结构与第二子孙元素结构的结构相似度大于第二相似度阈值的兄弟元素,若是,则选取对应的所述兄弟元素作为相似元素,并输出携带所述相似元素的查找结果;若否,则查找所述目标元素的父级元素,将所述父级元素作为新的目标元素,并进入目标元素校验模块。
[0051]
本发明的优点在于:
[0052]
通过提取目标元素的第一特征向量以及各兄弟元素的第二特征向量,通过各第二特征向量与第一特征向量的余弦相似度对兄弟元素进行初步筛选,接着通过目标元素的第一子孙元素结构和兄弟元素的第二子孙元素结构的结构相似度进行进一步的筛选,以查找相似元素,即通过特征匹配查找相似元素,不仅能提升相似元素匹配的精度,还能有效抵抗环境干扰,并且克服了传统方法二需要至少2个待查模板元素作为输入的缺陷;当未查找到相似元素时从目标元素的父级元素重新开始查找,即采用自底向上的迭代,克服了传统方法一中过多无效循环迭代的缺陷,最终极大的提升了相似元素匹配的精度以及便捷性。
附图说明
[0053]
下面参照附图结合实施例对本发明作进一步的说明。
[0054]
图1是本发明一种web网页相似元素查找方法的流程图。
[0055]
图2是本发明一种web网页相似元素查找系统的结构示意图。
[0056]
图3是本发明的图例。
具体实施方式
[0057]
本技术实施例中的技术方案,总体思路如下:通过元素的特征向量的余弦相似度以及子孙元素结构的结构相似度查找相似元素,以提升相似元素匹配的精度;通过自底向上的迭代方式,即目标未查找到相似元素时从目标元素的父级元素重新开始查找,减少无效循环迭代,且无需输入多个待查模板元素,以提升相似元素匹配的便捷性以及效率。
[0058]
请参照图1至图2所示,本发明一种web网页相似元素查找方法的较佳实施例,包括如下步骤:
[0059]
步骤s10、获取目标元素,并对所述目标元素进行校验;所述目标元素的待查找相似元素的元素;
[0060]
步骤s20、获取所述目标元素的第一子孙元素结构以及同级的兄弟元素;例如元素[3]的第一子孙元素结构为:
[0061]

html
[0062]
《article》《label/》《article》
[0063]
《article》《label/》《article》
[0064]
《article》《label/》《article》)
[0065]

[0066]
步骤s30、提取所述目标元素的第一特征向量以及各兄弟元素的第二特征向量;
[0067]
步骤s40、分别计算各所述第二特征向量与第一特征向量的余弦相似度,基于所述余弦相似度对各兄弟元素进行筛选;
[0068]
步骤s50、获取筛选出的所述兄弟元素的第二子孙元素结构,基于所述第一子孙元素结构以及第二子孙元素结构查找相似元素。
[0069]
所述步骤s10具体为:
[0070]
获取目标元素,判断所述目标元素是否为根元素,若是,则输出无相似元素的查找结果;若否,则进入步骤s20。在html中,视document.body为根元素。
[0071]
所述步骤s30中,所述第一特征向量以及第二特征向量的提取步骤如下:
[0072]
获取同级目标元素和兄弟元素的元素名称(nodename)、属性名称以及属性值,基于本元素是否存在对应的元素名称、属性名称以及属性值进行赋值,进而完成第一特征向量以及第二特征向量的提取。
[0073]
如图3所示,元素[5]的元素名称为['n:article'];
[0074]
元素[5]的属性为:class="article-container wrapper-0"
[0075]
元素[6]的属性为:class="article-container wrapper-1"
[0076]
元素[7]的属性为:class="article-container wrapper-2"
[0077]
通过提取元素[5]、元素[6]、元素[7]的元素名称以及属性键值(属性名称以及属性值),并按单词分割,整合成一个向量空间:
[0078]
['n:article','ak:class','av:article','av:container','av:wrapper','av:0','av:1','av:2']
[0079]
其中,n前缀表示这个特征的元素编号,ak前缀表示这个特征来自属性名称,av前缀表示这个特征来自属性值。
[0080]
结合向量空间,判断本元素是否存在对应的特征,得到特征向量:
[0081]
[10,1,1,1,1,1,0,0],将'n:article'赋值为10为了给予更大的权重。
[0082]
所述步骤s40具体为:
[0083]
设定一第一相似度阈值,分别计算各所述第二特征向量与第一特征向量的余弦相似度,筛选出余弦相似度大于所述第一相似度阈值的兄弟元素。
[0084]
所述步骤s50具体为:
[0085]
设定一第二相似度阈值,获取筛选出的各所述兄弟元素的第二子孙元素结构;
[0086]
判断是否存在所述第一子孙元素结构与第二子孙元素结构的结构相似度大于第二相似度阈值的兄弟元素,若是,则选取对应的所述兄弟元素作为相似元素,并输出携带所述相似元素的查找结果;若否,则查找所述目标元素的父级元素,将所述父级元素作为新的目标元素,并进入步骤s10,即执行下一个迭代。
[0087]
本发明一种web网页相似元素查找系统的较佳实施例,包括如下模块:
[0088]
目标元素校验模块,用于获取目标元素,并对所述目标元素进行校验;所述目标元素的待查找相似元素的元素;
[0089]
兄弟元素获取模块,用于获取所述目标元素的第一子孙元素结构以及同级的兄弟元素;例如元素[3]的第一子孙元素结构为:
[0090]

html
[0091]
《article》《label/》《article》
[0092]
《article》《label/》《article》
[0093]
《article》《label/》《article》)
[0094]

[0095]
特征向量提取模块,用于提取所述目标元素的第一特征向量以及各兄弟元素的第二特征向量;
[0096]
余弦相似度计算模块,用于分别计算各所述第二特征向量与第一特征向量的余弦相似度,基于所述余弦相似度对各兄弟元素进行筛选;
[0097]
相似元素查找模块,用于获取筛选出的所述兄弟元素的第二子孙元素结构,基于所述第一子孙元素结构以及第二子孙元素结构查找相似元素。
[0098]
所述目标元素校验模块具体为:
[0099]
获取目标元素,判断所述目标元素是否为根元素,若是,则输出无相似元素的查找结果;若否,则进入兄弟元素获取模块。在html中,视document.body为根元素。
[0100]
所述特征向量提取模块中,所述第一特征向量以及第二特征向量的提取步骤如下:
[0101]
获取同级目标元素和兄弟元素的元素名称(nodename)、属性名称以及属性值,基于本元素是否存在对应的元素名称、属性名称以及属性值进行赋值,进而完成第一特征向量以及第二特征向量的提取。
[0102]
如图3所示,元素[5]的元素名称为['n:article'];
[0103]
元素[5]的属性为:class="article-container wrapper-0"
[0104]
元素[6]的属性为:class="article-container wrapper-1"
[0105]
元素[7]的属性为:class="article-container wrapper-2"
[0106]
通过提取元素[5]、元素[6]、元素[7]的元素名称以及属性键值(属性名称以及属
性值),并按单词分割,整合成一个向量空间:
[0107]
['n:article','ak:class','av:article','av:container','av:wrapper','av:0','av:1','av:2']
[0108]
其中,n前缀表示这个特征的元素编号,ak前缀表示这个特征来自属性名称,av前缀表示这个特征来自属性值。
[0109]
结合向量空间,判断本元素是否存在对应的特征,得到特征向量:
[0110]
[10,1,1,1,1,1,0,0],将'n:article'赋值为10为了给予更大的权重。
[0111]
所述余弦相似度计算模块具体为:
[0112]
设定一第一相似度阈值,分别计算各所述第二特征向量与第一特征向量的余弦相似度,筛选出余弦相似度大于所述第一相似度阈值的兄弟元素。
[0113]
所述相似元素查找模块具体为:
[0114]
设定一第二相似度阈值,获取筛选出的各所述兄弟元素的第二子孙元素结构;
[0115]
判断是否存在所述第一子孙元素结构与第二子孙元素结构的结构相似度大于第二相似度阈值的兄弟元素,若是,则选取对应的所述兄弟元素作为相似元素,并输出携带所述相似元素的查找结果;若否,则查找所述目标元素的父级元素,将所述父级元素作为新的目标元素,并进入目标元素校验模块,即执行下一个迭代。
[0116]
综上所述,本发明的优点在于:
[0117]
通过提取目标元素的第一特征向量以及各兄弟元素的第二特征向量,通过各第二特征向量与第一特征向量的余弦相似度对兄弟元素进行初步筛选,接着通过目标元素的第一子孙元素结构和兄弟元素的第二子孙元素结构的结构相似度进行进一步的筛选,以查找相似元素,即通过特征匹配查找相似元素,不仅能提升相似元素匹配的精度,还能有效抵抗环境干扰,并且克服了传统方法二需要至少2个待查模板元素作为输入的缺陷;当未查找到相似元素时从目标元素的父级元素重新开始查找,即采用自底向上的迭代,克服了传统方法一中过多无效循环迭代的缺陷,最终极大的提升了相似元素匹配的精度以及便捷性。
[0118]
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

技术特征:
1.一种web网页相似元素查找方法,其特征在于:包括如下步骤:步骤s10、获取目标元素,并对所述目标元素进行校验;步骤s20、获取所述目标元素的第一子孙元素结构以及同级的兄弟元素;步骤s30、提取所述目标元素的第一特征向量以及各兄弟元素的第二特征向量;步骤s40、分别计算各所述第二特征向量与第一特征向量的余弦相似度,基于所述余弦相似度对各兄弟元素进行筛选;步骤s50、获取筛选出的所述兄弟元素的第二子孙元素结构,基于所述第一子孙元素结构以及第二子孙元素结构查找相似元素。2.如权利要求1所述的一种web网页相似元素查找方法,其特征在于:所述步骤s10具体为:获取目标元素,判断所述目标元素是否为根元素,若是,则输出无相似元素的查找结果;若否,则进入步骤s20。3.如权利要求1所述的一种web网页相似元素查找方法,其特征在于:所述步骤s30中,所述第一特征向量以及第二特征向量的提取步骤如下:获取同级目标元素和兄弟元素的元素名称、属性名称以及属性值,基于本元素是否存在对应的元素名称、属性名称以及属性值进行赋值,进而完成第一特征向量以及第二特征向量的提取。4.如权利要求1所述的一种web网页相似元素查找方法,其特征在于:所述步骤s40具体为:设定一第一相似度阈值,分别计算各所述第二特征向量与第一特征向量的余弦相似度,筛选出余弦相似度大于所述第一相似度阈值的兄弟元素。5.如权利要求1所述的一种web网页相似元素查找方法,其特征在于:所述步骤s50具体为:设定一第二相似度阈值,获取筛选出的各所述兄弟元素的第二子孙元素结构;判断是否存在所述第一子孙元素结构与第二子孙元素结构的结构相似度大于第二相似度阈值的兄弟元素,若是,则选取对应的所述兄弟元素作为相似元素,并输出携带所述相似元素的查找结果;若否,则查找所述目标元素的父级元素,将所述父级元素作为新的目标元素,并进入步骤s10。6.一种web网页相似元素查找系统,其特征在于:包括如下模块:目标元素校验模块,用于获取目标元素,并对所述目标元素进行校验;兄弟元素获取模块,用于获取所述目标元素的第一子孙元素结构以及同级的兄弟元素;特征向量提取模块,用于提取所述目标元素的第一特征向量以及各兄弟元素的第二特征向量;余弦相似度计算模块,用于分别计算各所述第二特征向量与第一特征向量的余弦相似度,基于所述余弦相似度对各兄弟元素进行筛选;相似元素查找模块,用于获取筛选出的所述兄弟元素的第二子孙元素结构,基于所述第一子孙元素结构以及第二子孙元素结构查找相似元素。7.如权利要求6所述的一种web网页相似元素查找系统,其特征在于:所述目标元素校
验模块具体为:获取目标元素,判断所述目标元素是否为根元素,若是,则输出无相似元素的查找结果;若否,则进入兄弟元素获取模块。8.如权利要求6所述的一种web网页相似元素查找系统,其特征在于:所述特征向量提取模块中,所述第一特征向量以及第二特征向量的提取步骤如下:获取同级目标元素和兄弟元素的元素名称、属性名称以及属性值,基于本元素是否存在对应的元素名称、属性名称以及属性值进行赋值,进而完成第一特征向量以及第二特征向量的提取。9.如权利要求6所述的一种web网页相似元素查找系统,其特征在于:所述余弦相似度计算模块具体为:设定一第一相似度阈值,分别计算各所述第二特征向量与第一特征向量的余弦相似度,筛选出余弦相似度大于所述第一相似度阈值的兄弟元素。10.如权利要求6所述的一种web网页相似元素查找系统,其特征在于:所述相似元素查找模块具体为:设定一第二相似度阈值,获取筛选出的各所述兄弟元素的第二子孙元素结构;判断是否存在所述第一子孙元素结构与第二子孙元素结构的结构相似度大于第二相似度阈值的兄弟元素,若是,则选取对应的所述兄弟元素作为相似元素,并输出携带所述相似元素的查找结果;若否,则查找所述目标元素的父级元素,将所述父级元素作为新的目标元素,并进入目标元素校验模块。

技术总结
本发明提供了计算机技术领域的一种Web网页相似元素查找方法及系统,方法包括如下步骤:步骤S10、获取目标元素,并对所述目标元素进行校验;步骤S20、获取所述目标元素的第一子孙元素结构以及同级的兄弟元素;步骤S30、提取所述目标元素的第一特征向量以及各兄弟元素的第二特征向量;步骤S40、分别计算各所述第二特征向量与第一特征向量的余弦相似度,基于所述余弦相似度对各兄弟元素进行筛选;步骤S50、获取筛选出的所述兄弟元素的第二子孙元素结构,基于所述第一子孙元素结构以及第二子孙元素结构查找相似元素。本发明的优点在于:极大的提升了相似元素匹配的精度以及便捷性。的提升了相似元素匹配的精度以及便捷性。的提升了相似元素匹配的精度以及便捷性。


技术研发人员:刘志海 林楠
受保护的技术使用者:珠海紫讯信息科技有限公司
技术研发日:2022.02.18
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-5095.html

最新回复(0)