CN117290626A - XPath生成方法、系统、存储介质及电子设备 - Google Patents
XPath生成方法、系统、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117290626A CN117290626A CN202311570512.7A CN202311570512A CN117290626A CN 117290626 A CN117290626 A CN 117290626A CN 202311570512 A CN202311570512 A CN 202311570512A CN 117290626 A CN117290626 A CN 117290626A
- Authority
- CN
- China
- Prior art keywords
- node
- xpath
- generating
- html
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000014509 gene expression Effects 0.000 claims abstract description 49
- 239000011159 matrix material Substances 0.000 claims abstract description 36
- 238000004140 cleaning Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010195 expression analysis Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种XPath生成方法、系统、存储介质及电子设备,所述方法包括以下步骤:获取指定区域的HTML文件;对所述HTML文件进行清洗;基于清洗后的HTML文件生成HTML节点队列;基于所述HTML节点队列生成节点矩阵;基于所述节点矩阵生成Xpath表达式。本发明的XPath生成方法、系统、存储介质及电子设备能够实现快速高效地提供XPath表达式,且准确率高。
Description
技术领域
本发明属于XPath(XML Path Language,XML路径语言)的技术领域,特别是涉及一种XPath生成方法、系统、存储介质及电子设备。
背景技术
在网络爬虫、数据抓取等应用中,经常需要解析HTML文档并生成XPath来定位特定的元素。XPath是一种在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历。
现有技术中,Xpath的生成方法主要包括以下几种。
(1)基于页面结构通过人工分析、编写的XPath表达式。
该方法需要对XPath原理和HTML知识有所理解。编写的XPath表达式如果考虑不周全,则会导致提取不需要的链接,更严重则会导致链接提取错误。若页面发生改变,则再次修正会更加耗时。例如,如果HTML文档的结构发生了变化,那么原来的Xpath表达式可能就无法正确地定位元素。
(2)采用浏览器自带的XPath表达式分析功能。
目前,部分浏览器提供了自动生成Xpath表达式的功能。该功能通常会解析HTML文档,根据元素的标签名、属性等信息生成Xpath表达式。然而,上述功能通常只能生成简单的Xpath表达式;对于复杂的HTML文档,可能无法生成正确简洁的Xpath表达式,需要进行人工修改才能使用。
(3)采用插件XPath-Help。
该插件无法提供准确简洁的XPath表达式,也需要在人工修改后才能使用。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种XPath生成方法、系统、存储介质及电子设备,能够实现快速高效地提供XPath表达式,且准确率高。
第一方面,本发明提供一种XPath生成方法,所述方法包括以下步骤:获取指定区域的HTML文件;对所述HTML文件进行清洗;基于清洗后的HTML文件生成HTML节点队列;基于所述HTML节点队列生成节点矩阵;基于所述节点矩阵生成Xpath表达式。
在第一方面的一种实现方式中,对所述HTML文件进行清洗包括以下步骤:
去除所述HTML文件中的转义符号;
去除所述HTML文件中的HTML实体编码。
在第一方面的一种实现方式中,基于清洗后的HTML文件生成HTML节点队列包括以下步骤:
将所述清洗后的HTML文件转换为HTML文档对象;
采用递归方式逐一获取所述HTML文档对象的各个节点的节点信息,所述节点信息包括节点名称、节点属性、节点深度和节点身份ID;
基于所述节点信息将所述各个节点构建为所述HTML节点队列。
在第一方面的一种实现方式中,基于所述HTML节点队列生成节点矩阵包括以下步骤:
获取所述HTML节点队列中各个节点的节点深度;
根据所述节点深度将所述各个节点构建为节点矩阵。
在第一方面的一种实现方式中,基于所述节点矩阵生成XPath表达式包括以下步骤:
获取所述节点矩阵中各个节点的节点身份ID和父节点身份ID;
倒序遍历所述节点矩阵,对于所述节点矩阵中的每个节点,根据所述节点的节点身份ID和父节点身份ID构建树结构;
遍历所述树结构,生成XPath表达式。
在第一方面的一种实现方式中,还包括对于所述树结构中的每个节点,根据所述节点的节点属性判断所述节点是否为文章链接。
在第一方面的一种实现方式中,还包括获取所述指定区域的XPath表达式,将所述指定区域的XPath表达式与生成的XPath表达式进行拼接,以获取最终的XPath表达式。
第二方面,本发明提供一种XPath生成系统,所述系统包括获取模块、清洗模块、第一生成模块、第二生成模块和第三生成模块;
所述获取模块用于获取指定区域的HTML文件;
所述清洗模块用于对所述HTML文件进行清洗;
所述第一生成模块用于基于清洗后的HTML文件生成HTML节点队列;
所述第二生成模块用于基于所述HTML节点队列生成节点矩阵;
所述第三生成模块用于基于所述节点矩阵生成Xpath表达式。
第三方面,本发明提供一种电子设备,所述电子设备包括:处理器和存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的XPath生成方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被电子设备执行时实现上述的XPath生成方法。
如上所述,本发明所述的XPath生成方法、系统、存储介质及电子设备,具有以下有益效果。
(1)无需人工介入,只需提供指定区域的HTML文档和指定区域的XPath表达式,即可自动分析列表页面文章链接所在节点的XPath表达式。
(2)基于指定HTML文档,通过深度遍历各个节点来分析列表页面中的文章XPath表达式,并提取各种路径下文章链接所在节点的XPath表达式;其中包括列表页面中或者专题页面中的文章链接所在节点、表格类信息页面中的文章链接所在节点、方格样式页面中文章链接所在节点。
(3)根据XPath原理将XPath表达式在不影响使用功能下进行缩减删除,更加简洁、直观。
(4)操作简单,智能化程度高,极具实用性。
附图说明
图1显示为本发明的电子设备于一实施例中的场景示意图。
图2显示为本发明的XPath生成方法于一实施例中的流程图。
图3显示为本发明中HTML节点队列生成方法于一实施例中的流程图。
图4显示为本发明的XPath生成系统于一实施例中的结构示意图。
图5显示为本发明的电子设备于一实施例中的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明以下实施例提供了XPath生成方法,其可应用于如图1所示的电子设备。本发明中所述电子设备可以包括具备无线充电功能的手机11、平板电脑12、笔记本电脑13、可穿戴设备、车载设备、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备、超级移动个人计算机(Ultra-Mobile Personal Computer,UMPC)、上网本、个人数字助理(Personal Digital Assistant,PDA)等,本发明实施例对电子设备的具体类型不作任何限制。
例如,所述电子设备可以是具备无线充电功能的 WLAN 中的站点(STAION,ST),可以是具备无线充电功能的蜂窝电话、无绳电话、会话启动协议(SessionInitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具备无线充电功能的手持设备、计算设备或其它处理设备、电脑、膝上型计算机、手持式通信设备、手持式计算设备、和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G 网络中的移动终端、未来演进的公共陆地移动网络(PublicLand Mobile Network,PLMN)中的移动终端或者未来演进的非地面网络(Non-terrestrial Network,NTN)中的移动终端等。
例如,所述电子设备可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobilecommunication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)、BT,GNSS,WLAN,NFC,FM,和/或 IR 技术等。所述 GNSS可以包括全球卫星定位系统 (Global Positioning System,GPS),全球导航卫星系统(Global Navigation Satellite System,GLONASS),北斗卫星导航系统(BeiDounavigation Satellite System,BDS),准天顶卫星系统(Quasi-Zenith SatelliteSystem,QZSS)和/或星基增强系统(Satellite Based Augmentation Systems,SBAS)。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。
如图2所示,于一实施例中,本发明的XPath生成方法包括步骤S1-步骤S5。
步骤S1、获取指定区域的HTML文件。
具体地,所述指定区域可以是列表页面中或者专题页面、表格类信息页面、方格样式页面。
步骤S2、对所述HTML文件进行清洗。
具体地,从所述HTML文档中清洗会影响构建HTML文档对象的元素,将一些转义符号、HTML实体编码清洗去除,保证所述HTML文档在构建HTML文档对象时不会因为特殊字符产生差异,从而保证本发明的XPath生成方法在大多数情况下稳定可靠。
步骤S3、基于清洗后的HTML文件生成HTML节点队列。
具体地,如图3所示,基于清洗后的HTML文件生成HTML节点队列包括以下步骤。
31)将所述清洗后的HTML文件转换为HTML文档对象。
其中,使用Python基本库lxml中的etree方法,将所述清洗后的HTML文件转换为HTML文档对象。
32)采用递归方式逐一获取所述HTML文档对象的各个节点的节点信息,所述节点信息包括节点名称、节点属性、节点深度和节点身份ID。
其中,采用基本XPath语法提取各个节点的节点名字、节点属性、节点深度,并根据节点的节点名字、节点属性、节点深度等数据采用hash算法生成节点身份ID。
33)基于所述节点信息将所述各个节点构建为所述HTML节点队列。
其中,将每个节点组装为一个树节点,并存入所述HTML节点队列。在操作过程中,树节点生成后,采用队列存储的方式临时存储树节点。对于每个树节点,以节点名字、节点属性为主要对象属性,代表树节点在拼接XPath表达式时所用到的数据。以节点深度、父节点身份ID、自身节点身份ID为辅助对象属性,代表树节点在整个树结构中的位置,便于后续遍历树结构时能够准确无误的遍历。
步骤S4、基于所述HTML节点队列生成节点矩阵。
具体地,首先获取所述HTML节点队列中各个节点的节点深度;再根据所述HTML节点队列中各个节点的节点深度构建节点矩阵。其中,根据获取的节点深度最大值,通过循环,从HTML节点队列中获取相同节点深度的节点对象,并存入临时队列。最后把循环生成的临时队列按照节点深度从小到大的顺序依次存入节点矩阵中。
步骤S5、基于所述节点矩阵生成Xpath表达式。
具体地,于一实施例中,基于所述节点矩阵生成XPath表达式包括以下步骤。
51)获取所述节点矩阵中各个节点的节点身份ID和父节点身份ID。
52)倒序遍历所述节点矩阵,对于所述节点矩阵中的每个节点,根据所述节点的节点身份ID和父节点身份ID构建树结构。
53)遍历所述树结构,生成XPath表达式。
其中,树结构明确了各个树节点之间的子父关系,对应了XPath表达式的编写顺序。通过递归的方式,从树结构的根节点开始递归,到树节点名字为“<a>”结束。根据各个树节点的子父关系,按照XPath语法生成XPath表达式。因为树结构已经明确了XPath表达式编写的顺序,所以生成的XPath表达式是正确的。
优选地,本发明的XPath生成方法还包括对于所述树结构中的每个节点,根据所述节点的节点属性判断所述节点是否为文章链接,以保证生成的XPath表达式的准确性。
为了防止生成的XPath表达式不够准确,可获取所述指定区域的XPath表达式,将所述指定区域的XPath表达式与生成的XPath表达式进行拼接,以获取最终的XPath表达式,从而确保生成的XPath是列表页面中指定区域的文章XPath。其中,在进行拼接时,将首尾相同的XPath进行拼接。当一个XPath的尾部与另一个XPath的首部相同时,则进行二者的拼接。
本发明实施例所述的XPath生成方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
本发明实施例还提供一种XPath生成系统,所述XPath生成系统可以实现本发明所述的XPath生成方法,但本发明所述的XPath生成系统的实现装置包括但不限于本实施例列举的XPath生成系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
如图4所示,于一实施例中,本发明的XPath生成系统包括获取模块41、清洗模块42、第一生成模块43、第二生成模块44和第三生成模块45。
所述获取模块41用于获取指定区域的HTML文件。
所述清洗模块42与所述获取模41相连,用于对所述HTML文件进行清洗。
所述第一生成模块43与所述清洗模块42相连,用于基于清洗后的HTML文件生成HTML节点队列。
所述第二生成模块44与所述第一生成模块43相连,用于基于所述HTML节点队列生成节点矩阵。
所述第三生成模块45与所述第二生成模块44相连,用于基于所述节点矩阵生成Xpath表达式。
其中,获取模块41、清洗模块42、第一生成模块43、第二生成模块44和第三生成模块45的结构和原理与上述XPath生成方法中的步骤一一对应,故在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置或方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块/单元可以是或者也可以不是物理上分开的,作为模块/单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块/单元来实现本发明实施例的目的。例如,在本发明各个实施例中的各功能模块/单元可以集成在一个处理模块中,也可以是各个模块/单元单独物理存在,也可以两个或两个以上模块/单元集成在一个模块/单元中。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例还提供了一种计算机可读存储介质。本领域普通技术人员可以理解实现上述实施例的方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetictape),软盘(floppy disk),光盘(optical disc)及其任意组合。上述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本发明实施例还提供了一种电子设备。所述电子设备包括处理器和存储器。
所述存储器用于存储计算机程序。
所述存储器包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的XPath生成方法。
优选地,所述处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如图5所示,本发明的电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器或者处理单元51,存储器52,连接不同系统组件(包括存储器52和处理单元51)的总线53。
总线53表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器52可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)521和/或高速缓存存储器522。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统523可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM ,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线53相连。存储器52可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块5241的程序/实用工具524,可以存储在例如存储器52中,这样的程序模块5241包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块5241通常执行本发明所描述的实施例中的功能和/或方法。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口54进行。并且,电子设备还可以通过网络适配器55与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器55通过总线53与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (9)
1.一种XPath生成方法,其特征在于,所述方法包括以下步骤:
获取指定区域的HTML文件;
对所述HTML文件进行清洗;
基于清洗后的HTML文件生成HTML节点队列;
基于所述HTML节点队列生成节点矩阵;
基于所述节点矩阵生成Xpath表达式;
基于所述节点矩阵生成XPath表达式包括以下步骤:
获取所述节点矩阵中各个节点的节点身份ID和父节点身份ID;
倒序遍历所述节点矩阵,对于所述节点矩阵中的每个节点,根据所述节点的节点身份ID和父节点身份ID构建树结构;
遍历所述树结构,生成XPath表达式。
2.根据权利要求1所述的XPath生成方法,其特征在于:对所述HTML文件进行清洗包括以下步骤:
去除所述HTML文件中的转义符号;
去除所述HTML文件中的HTML实体编码。
3.根据权利要求1所述的XPath生成方法,其特征在于:基于清洗后的HTML文件生成HTML节点队列包括以下步骤:
将所述清洗后的HTML文件转换为HTML文档对象;
采用递归方式逐一获取所述HTML文档对象的各个节点的节点信息,所述节点信息包括节点名称、节点属性、节点深度和节点身份ID;
基于所述节点信息将所述各个节点构建为所述HTML节点队列。
4.根据权利要求1所述的XPath生成方法,其特征在于:基于所述HTML节点队列生成节点矩阵包括以下步骤:
获取所述HTML节点队列中各个节点的节点深度;
根据所述节点深度将所述各个节点构建为节点矩阵。
5.根据权利要求1所述的XPath生成方法,其特征在于:还包括对于所述树结构中的每个节点,根据所述节点的节点属性判断所述节点是否为文章链接。
6.根据权利要求1所述的XPath生成方法,其特征在于:还包括获取所述指定区域的XPath表达式,将所述指定区域的XPath表达式与生成的XPath表达式进行拼接,以获取最终的XPath表达式。
7.一种XPath生成系统,其特征在于,所述系统包括获取模块、清洗模块、第一生成模块、第二生成模块和第三生成模块;
所述获取模块用于获取指定区域的HTML文件;
所述清洗模块用于对所述HTML文件进行清洗;
所述第一生成模块用于基于清洗后的HTML文件生成HTML节点队列;
所述第二生成模块用于基于所述HTML节点队列生成节点矩阵;
所述第三生成模块用于基于所述节点矩阵生成Xpath表达式;
基于所述节点矩阵生成XPath表达式包括以下步骤:
获取所述节点矩阵中各个节点的节点身份ID和父节点身份ID;
倒序遍历所述节点矩阵,对于所述节点矩阵中的每个节点,根据所述节点的节点身份ID和父节点身份ID构建树结构;
遍历所述树结构,生成XPath表达式。
8.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行权利要求1至6中任一项所述的XPath生成方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被电子设备执行时实现权利要求1至6中任一项所述的XPath生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311570512.7A CN117290626B (zh) | 2023-11-23 | 2023-11-23 | XPath生成方法、系统、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311570512.7A CN117290626B (zh) | 2023-11-23 | 2023-11-23 | XPath生成方法、系统、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117290626A true CN117290626A (zh) | 2023-12-26 |
CN117290626B CN117290626B (zh) | 2024-03-15 |
Family
ID=89253804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311570512.7A Active CN117290626B (zh) | 2023-11-23 | 2023-11-23 | XPath生成方法、系统、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117290626B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208769A1 (en) * | 2006-03-03 | 2007-09-06 | International Business Machines Corporation | System and method for generating an XPath expression |
CN102306204A (zh) * | 2011-09-28 | 2012-01-04 | 武汉大学 | 基于文本结构权重的主题区域识别方法 |
CN102929996A (zh) * | 2012-10-24 | 2013-02-13 | 华南理工大学 | XPath查询优化方法及系统 |
CN109190003A (zh) * | 2018-08-20 | 2019-01-11 | 上海蜜度信息技术有限公司 | 用于确定列表页节点的方法与设备 |
US20200293592A1 (en) * | 2018-10-25 | 2020-09-17 | Sanjay Kumar | Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors |
CN112231434A (zh) * | 2020-10-21 | 2021-01-15 | 上海蜜度信息技术有限公司 | 一种信息自动分发方法及系统、存储介质及终端 |
CN112528082A (zh) * | 2020-12-08 | 2021-03-19 | 集美大学 | 一种XML文档的流水线XPath查询方法、终端设备及存储介质 |
CN112732994A (zh) * | 2021-01-07 | 2021-04-30 | 上海携宁计算机科技股份有限公司 | 网页信息的提取方法、装置、设备及存储介质 |
CN114911803A (zh) * | 2022-07-18 | 2022-08-16 | 四川科瑞软件有限责任公司 | 基于树的二进制矩阵的数据管理方法、装置、设备及介质 |
CN115795193A (zh) * | 2022-08-29 | 2023-03-14 | 武汉思普崚技术有限公司 | 页面数据提取方法、页面自动化测试方法 |
-
2023
- 2023-11-23 CN CN202311570512.7A patent/CN117290626B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208769A1 (en) * | 2006-03-03 | 2007-09-06 | International Business Machines Corporation | System and method for generating an XPath expression |
CN102306204A (zh) * | 2011-09-28 | 2012-01-04 | 武汉大学 | 基于文本结构权重的主题区域识别方法 |
CN102929996A (zh) * | 2012-10-24 | 2013-02-13 | 华南理工大学 | XPath查询优化方法及系统 |
CN109190003A (zh) * | 2018-08-20 | 2019-01-11 | 上海蜜度信息技术有限公司 | 用于确定列表页节点的方法与设备 |
US20200293592A1 (en) * | 2018-10-25 | 2020-09-17 | Sanjay Kumar | Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors |
CN112231434A (zh) * | 2020-10-21 | 2021-01-15 | 上海蜜度信息技术有限公司 | 一种信息自动分发方法及系统、存储介质及终端 |
CN112528082A (zh) * | 2020-12-08 | 2021-03-19 | 集美大学 | 一种XML文档的流水线XPath查询方法、终端设备及存储介质 |
CN112732994A (zh) * | 2021-01-07 | 2021-04-30 | 上海携宁计算机科技股份有限公司 | 网页信息的提取方法、装置、设备及存储介质 |
CN114911803A (zh) * | 2022-07-18 | 2022-08-16 | 四川科瑞软件有限责任公司 | 基于树的二进制矩阵的数据管理方法、装置、设备及介质 |
CN115795193A (zh) * | 2022-08-29 | 2023-03-14 | 武汉思普崚技术有限公司 | 页面数据提取方法、页面自动化测试方法 |
Non-Patent Citations (1)
Title |
---|
姜峰;范玉顺;: "UDDI与Web服务扩展元数据拓扑映射", 清华大学学报(自然科学版)网络.预览, no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
CN117290626B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360257B2 (en) | System and method for image annotation | |
CN108363634B (zh) | 一种业务处理失败原因识别方法、装置及设备 | |
US20170344582A1 (en) | Systems, methods, and computer-readable media for interpreting geographical search queries | |
CN110705214A (zh) | 一种自动编码方法及装置 | |
US8996360B2 (en) | Method and apparatus for generating journal | |
CN110738056A (zh) | 用于生成信息的方法和装置 | |
CN104794046B (zh) | 符号化程序运行日志的方法和系统 | |
CN117290626B (zh) | XPath生成方法、系统、存储介质及电子设备 | |
CN112765029A (zh) | 测试方法、装置、电子设备及计算机存储介质 | |
CN109582574B (zh) | 一种代码覆盖率统计方法、装置、存储介质及终端设备 | |
CN117314139A (zh) | 业务流程的建模方法、装置、终端设备及存储介质 | |
CN111124541A (zh) | 一种配置文件的生成方法、装置、设备及介质 | |
CN116074183A (zh) | 一种基于规则引擎的c3超时分析方法、装置及设备 | |
CN115967604A (zh) | 报文传输方法、装置、电子设备及计算机可读存储介质 | |
CN113138767B (zh) | 代码语言转换方法、装置、电子设备及存储介质 | |
CN115390847A (zh) | 日志处理方法及装置、计算机可读存储介质、终端 | |
CN115186738A (zh) | 模型训练方法、装置和存储介质 | |
CN113722321A (zh) | 数据导出方法、装置和电子设备 | |
US11360745B2 (en) | Code generation for log-based mashups | |
CN113807056A (zh) | 一种文档名称序号纠错方法、装置和设备 | |
CN116630633B (zh) | 语义分割自动标注方法、系统、存储介质及电子设备 | |
CN116029284B (zh) | 中文子串提取方法、系统、存储介质及电子设备 | |
CN114968787B (zh) | 基于节点关系的测试方法、装置及电子设备 | |
CN111427870B (zh) | 一种资源管理方法、装置及设备 | |
CN118036592A (zh) | 地域隶属关系纠错方法、系统、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |