XPath生成方法、系统、存储介质及电子设备与流程

文档序号:36500731发布日期:2023-12-28 02:13阅读:71来源:国知局
XPath的制作方法

本发明属于xpath(xml path language,xml路径语言)的,特别是涉及一种xpath生成方法、系统、存储介质及电子设备。


背景技术:

1、在网络爬虫、数据抓取等应用中,经常需要解析html文档并生成xpath来定位特定的元素。xpath是一种在xml文档中查找信息的语言,可以用来在xml文档中对元素和属性进行遍历。

2、现有技术中,xpath的生成方法主要包括以下几种。

3、(1)基于页面结构通过人工分析、编写的xpath表达式。

4、该方法需要对xpath原理和html知识有所理解。编写的xpath表达式如果考虑不周全,则会导致提取不需要的链接,更严重则会导致链接提取错误。若页面发生改变,则再次修正会更加耗时。例如,如果html文档的结构发生了变化,那么原来的xpath表达式可能就无法正确地定位元素。

5、(2)采用浏览器自带的xpath表达式分析功能。

6、目前,部分浏览器提供了自动生成xpath表达式的功能。该功能通常会解析html文档,根据元素的标签名、属性等信息生成xpath表达式。然而,上述功能通常只能生成简单的xpath表达式;对于复杂的html文档,可能无法生成正确简洁的xpath表达式,需要进行人工修改才能使用。

7、(3)采用插件xpath-help。

8、该插件无法提供准确简洁的xpath表达式,也需要在人工修改后才能使用。


技术实现思路

1、鉴于以上所述现有技术的缺点,本发明的目的在于提供一种xpath生成方法、系统、存储介质及电子设备,能够实现快速高效地提供xpath表达式,且准确率高。

2、第一方面,本发明提供一种xpath生成方法,所述方法包括以下步骤:获取指定区域的html文件;对所述html文件进行清洗;基于清洗后的html文件生成html节点队列;基于所述html节点队列生成节点矩阵;基于所述节点矩阵生成xpath表达式。

3、在第一方面的一种实现方式中,对所述html文件进行清洗包括以下步骤:

4、去除所述html文件中的转义符号;

5、去除所述html文件中的html实体编码。

6、在第一方面的一种实现方式中,基于清洗后的html文件生成html节点队列包括以下步骤:

7、将所述清洗后的html文件转换为html文档对象;

8、采用递归方式逐一获取所述html文档对象的各个节点的节点信息,所述节点信息包括节点名称、节点属性、节点深度和节点身份id;

9、基于所述节点信息将所述各个节点构建为所述html节点队列。

10、在第一方面的一种实现方式中,基于所述html节点队列生成节点矩阵包括以下步骤:

11、获取所述html节点队列中各个节点的节点深度;

12、根据所述节点深度将所述各个节点构建为节点矩阵。

13、在第一方面的一种实现方式中,基于所述节点矩阵生成xpath表达式包括以下步骤:

14、获取所述节点矩阵中各个节点的节点身份id和父节点身份id;

15、倒序遍历所述节点矩阵,对于所述节点矩阵中的每个节点,根据所述节点的节点身份id和父节点身份id构建树结构;

16、遍历所述树结构,生成xpath表达式。

17、在第一方面的一种实现方式中,还包括对于所述树结构中的每个节点,根据所述节点的节点属性判断所述节点是否为文章链接。

18、在第一方面的一种实现方式中,还包括获取所述指定区域的xpath表达式,将所述指定区域的xpath表达式与生成的xpath表达式进行拼接,以获取最终的xpath表达式。

19、第二方面,本发明提供一种xpath生成系统,所述系统包括获取模块、清洗模块、第一生成模块、第二生成模块和第三生成模块;

20、所述获取模块用于获取指定区域的html文件;

21、所述清洗模块用于对所述html文件进行清洗;

22、所述第一生成模块用于基于清洗后的html文件生成html节点队列;

23、所述第二生成模块用于基于所述html节点队列生成节点矩阵;

24、所述第三生成模块用于基于所述节点矩阵生成xpath表达式。

25、第三方面,本发明提供一种电子设备,所述电子设备包括:处理器和存储器;

26、所述存储器用于存储计算机程序;

27、所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的xpath生成方法。

28、第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被电子设备执行时实现上述的xpath生成方法。

29、如上所述,本发明所述的xpath生成方法、系统、存储介质及电子设备,具有以下有益效果。

30、(1)无需人工介入,只需提供指定区域的html文档和指定区域的xpath表达式,即可自动分析列表页面文章链接所在节点的xpath表达式。

31、(2)基于指定html文档,通过深度遍历各个节点来分析列表页面中的文章xpath表达式,并提取各种路径下文章链接所在节点的xpath表达式;其中包括列表页面中或者专题页面中的文章链接所在节点、表格类信息页面中的文章链接所在节点、方格样式页面中文章链接所在节点。

32、(3)根据xpath原理将xpath表达式在不影响使用功能下进行缩减删除,更加简洁、直观。

33、(4)操作简单,智能化程度高,极具实用性。



技术特征:

1.一种xpath生成方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的xpath生成方法,其特征在于:对所述html文件进行清洗包括以下步骤:

3.根据权利要求1所述的xpath生成方法,其特征在于:基于清洗后的html文件生成html节点队列包括以下步骤:

4.根据权利要求1所述的xpath生成方法,其特征在于:基于所述html节点队列生成节点矩阵包括以下步骤:

5.根据权利要求1所述的xpath生成方法,其特征在于:还包括对于所述树结构中的每个节点,根据所述节点的节点属性判断所述节点是否为文章链接。

6.根据权利要求1所述的xpath生成方法,其特征在于:还包括获取所述指定区域的xpath表达式,将所述指定区域的xpath表达式与生成的xpath表达式进行拼接,以获取最终的xpath表达式。

7.一种xpath生成系统,其特征在于,所述系统包括获取模块、清洗模块、第一生成模块、第二生成模块和第三生成模块;

8.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被电子设备执行时实现权利要求1至6中任一项所述的xpath生成方法。


技术总结
本发明提供一种XPath生成方法、系统、存储介质及电子设备,所述方法包括以下步骤:获取指定区域的HTML文件;对所述HTML文件进行清洗;基于清洗后的HTML文件生成HTML节点队列;基于所述HTML节点队列生成节点矩阵;基于所述节点矩阵生成Xpath表达式。本发明的XPath生成方法、系统、存储介质及电子设备能够实现快速高效地提供XPath表达式,且准确率高。

技术研发人员:闫梦帆
受保护的技术使用者:上海蜜度科技股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1