CN113836450B - 一种基于可视化操作获取xpath的数据接口生成方法 - Google Patents
一种基于可视化操作获取xpath的数据接口生成方法 Download PDFInfo
- Publication number
- CN113836450B CN113836450B CN202111436066.1A CN202111436066A CN113836450B CN 113836450 B CN113836450 B CN 113836450B CN 202111436066 A CN202111436066 A CN 202111436066A CN 113836450 B CN113836450 B CN 113836450B
- Authority
- CN
- China
- Prior art keywords
- data
- xpath
- login
- acquiring
- label
- 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.)
- Active
Links
Images
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/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- 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/951—Indexing; Web crawling techniques
-
- 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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
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 Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于可视化操作获取XPATH的数据接口生成方法,涉及XPATH获取技术领域,解决现有技术不能适用于不同网页结构的问题,包括以下步骤:依据输入的目标网页地址下载该网页的数据结构,并将其在***的可视化界面进行展示;在可视化界面的参数配置页面添加要抓取的数据,并录入数据类型,数据类型为列表类型或数值类型或字符串类型;在可视化界面展示目标网页,光标移动到要抓取的数据的位置后得到标签,点击标签获取数据的XPATH地址;基于要抓取的数据的XPATH根据要抓取的值属性完成数据抓取,并生成对外的API接口地址;本发明可视化且适用性广的优点。
Description
技术领域
本发明涉及XPATH获取技术领域,更具体的是涉及基于可视化操作获取XPATH的数据接口生成方法。
背景技术
XPATH即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言。XPATH基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPATH的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型,但是XPATH很快的被开发者采用来当作小型查询语言。XPATH 使用路径表达式来选取 XML文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件***中看到的表达式非常相似。路径表达式是从一个XML节点,即当前的上下文节点到另一个节点、或一组节点的书面步骤顺序,这些步骤以“/”字符分开。
目前各行业大数据应用实现的第一步是从众多信息***和数据库***中获取基础数据。目前主流的采集方式有接口调用采集、数据包获取采集和网页信息采集。基于传统的数据采集方式,建设过程中需要使用原***的数据接口,过程中出现了众多问题,如原***数据接口不开放、数据无接口、原开发厂商不配合、协调周期长等,这直接增大了数据融合的难度。随着网络爬虫技术的发展,虽可以实现对***数据的精准抓取,但针对不同的***需要定制化的开发,增加了开发的人力和时间成本。
因为不同的***有不同的网页结构,需要获取的数据的XPATH各不相同。而每一个XPATH都需要专业的技术人员利用专用的工具对网页的XPATH进行定位获取,然后搜集该***的XPATH进行定制化开发。
发明内容
本发明的目的在于:解决现有技术不能适用于不同网页结构的问题。为了解决上述技术问题,本发明提供一种基于可视化操作获取XPATH的数据接口生成方法。
本发明为了实现上述目的具体采用以下技术方案:
一种基于可视化操作获取XPATH的数据接口生成方法,包括以下步骤:
步骤S1:依据输入的目标网页地址下载该网页的数据结构,并将其在***的可视化界面进行展示;
步骤S2:在可视化界面的参数配置页面添加要抓取的数据,并录入数据类型,数据类型为列表类型或数值类型或字符串类型;
步骤S3:在可视化界面展示目标网页,光标移动到要抓取的数据的位置后得到标签,点击标签获取数据的XPATH地址;
步骤S4:根据要抓取的数据的值属性和XPATH完成数据抓取,并生成对外的API接口地址。
优选地,在所述步骤S1中下载该网页的数据结构前判断目标网页是否需要配置登录模板,若是则配置登录模板,若否则不进行配置;登录模板包括用于目标网页登录的用户名和密码。
优选地,所述配置登录模板具体包括以下步骤:
步骤S11:在登录模板配置页面中输入目标***的用户名和密码;
步骤S12:在登录模板配置页面中输入目标***的用户名控件和密码控件的XPATH地址;
步骤S13:在登录模板配置页面中输入登录按钮的XPATH地址;
步骤S14:将用户名和密码传入selenium中完成模拟登陆;
步骤S15:保存cookies到数据库。
优选地,在步骤S2的录入操作前判断是否需要登录,若是则采用所述登录模板执行登录操作,若否则不执行登录操作。
优选地,在所述步骤S2中采用所述登录模板执行登录操作的具体方法为:通过对应的所述登录模板,使用所述cookies并加载到当前selenium中。
优选地,在所述步骤S2中,录入的数据类型不是列表类型,所述步骤S3中,获取数据的XPATH地址的方法具体包括以下步骤:
步骤S301:获取被点击的标签及其父标签;
步骤S302:递归获取父标签的父标签,直至获取顶层的<html>标签,得到要抓取的数据的XPATH。
优选地,在所述步骤S2中,录入的数据类型是列表类型,所述步骤S3中,获取数据的XPATH地址的方法具体包括以下步骤:
步骤S311:获取被点击的标签及其父标签;
步骤S312:递归获取父标签的父标签,直至获取顶层的<html>标签,得到数据所在行的行XPATH,所述行XPATH为所述目标网页中每一行数据的初始XPATH;
步骤S313:获取所述目标网页中每一个数据所在的行数和列数,获取第一行数据中每一列数据的列标签;
步骤S314:获取每个数据的XPATH,具体方法为,在初始XPATH后拼接数据所在行的行数,得到数据带行数的XPATH;在数据带行数的XPATH后拼接该数据对应列标签,得到数据的XPATH,所述对应列标签为第一行数据中该数据所在列的数据的列标签。
优选地,所述步骤S4中数据抓取的具体方法为:在所述要抓取的数据的XPATH后添加所述值属性的取值操作。
优选地,所述值属性包括文本属性、超链接属性和标题属性;文本属性的所述取值操作为/text();超链接属性的所述取值操作为/@href;标题属性的所述取值操作为/@title。
本发明的有益效果如下:
本发明的适用范围广,可以通过该***可实现按需获取XPATH并对目标***进行数据爬取,极大的提升了数据采集的效率;针对不同的数据类型指定抓取方法,适用范围广,可实现对70%的***或网站实施XPATH定位和数据的爬取或推送;并且具有可视化界面,方便观察数据抓取的过程以及自定义数据属性;直接在可视化窗口显示目标网页,能对各种结构的网页进行下载展示操作,兼容性强;还降低了数据采集定制化开发的工作量,节省了人力成本和时间成本。
附图说明
图1是本发明的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本实施例提供一种基于可视化操作获取XPATH的数据接口生成方法,包括以下步骤:
步骤S1:依据输入的目标网页地址下载该网页的数据结构,并将其在***的可视化界面进行展示;
步骤S2:在可视化界面的参数配置页面添加要抓取的数据,并录入数据类型,数据类型为列表类型或数值类型或字符串类型;
步骤S3:在可视化界面展示目标网页,光标移动到要抓取的数据的位置后得到标签,点击标签获取数据的XPATH地址;
步骤S4:根据要抓取的数据的值属性和XPATH完成数据抓取,并生成对外的API接口地址。
进一步地,在所述步骤S1中下载该网页的数据结构前判断目标网页是否需要配置登录模板,若是则配置登录模板,若否则不进行配置;登录模板包括用于目标网页登录的用户名和密码。
作为本实施例的优选方案,所述配置登录模板操作具体包括以下步骤:
步骤S11:在登录模板配置页面中输入目标***的用户名和密码;
步骤S12:在登录模板配置页面中输入目标***的用户名控件和密码控件的XPATH地址;
步骤S13:在登录模板配置页面中输入登录按钮的XPATH地址;
步骤S14:将用户名和密码传入selenium中完成模拟登陆;
步骤S15:保存cookies到数据库。
另外,在步骤S2的录入操作前判断是否需要,登录,若是则采用所述登录模板执行登录操作,若否则不执行登录操作。
具体地,在步骤S2中,采用所述登录模板执行登录操作的具体方法为:通过对应的所述登录模板,使用所述cookies并加载到当前selenium中。
此外,在所述步骤S2中,当录入的数据类型不是列表类型的时候,所述步骤S3中,获取数据的XPATH地址的方法具体包括以下步骤:
步骤S301:获取被点击的标签及其父标签;
步骤S302:递归获取父标签的父标签,直至获取顶层的<html>标签;具体为,根据XPATH的属性和定义可知,递归标签按照自顶层标签到被点击的标签的路径顺序依次进行组合即得到要抓取的数据的XPATH。
作为一种优选方案,在所述步骤S2中,录入的数据类型是列表类型,由于列表类型包含的数据可能较多,故在本实施例的所述步骤S3中,获取数据的XPATH地址的方法具体包括以下步骤:
步骤S311:获取被点击的标签及其父标签;
步骤S312:递归获取父标签的父标签,直至获取顶层的<html>标签,得到数据所在行的行XPATH,所述行XPATH为所述目标网页中每一行数据的初始XPATH;具体为,根据XPATH的属性和定义可知,递归标签按照自顶层标签到被点击的标签的路径顺序依次进行组合即得到要抓取的数据的初始XPATH,特别说明的是,由于页面内的每一行数据的标签路径均相同,所以同一页面中每一行数据的初始XPATH相同;
步骤S313:获取所述目标网页中每一个数据所在的行数和列数,获取第一行数据中每一列数据的列标签;
步骤S314:获取每个数据的XPATH,具体方法为,在初始XPATH后拼接数据所在行的行数,得到数据带行数的XPATH;
作为一个案例,/html/body/div/table/tbody/tr 是该页面的初始XPATH,也就是说起初每一行都被赋予了该一个初始XPATH,对第一行的数据进行处理时,则在该初始XPATH后拼接1,/html/body/div/table/tbody/tr[1]这个XPATH末尾的1就代表第一行,以此类推即可;
在数据带行数的XPATH后拼接该数据对应列标签,得到数据的XPATH,所述对应列标签为第一行数据中该数据所在列的数据的列标签。
具体来说,以上步骤可以通过一个循环实现所有数据的XPATH的获取,即先获取总行数,然后从第一行数据开始依次执行,直到执行完最后一行位置,具体地,在本实施例中获取总行数的方法可以是:获取相同初始XPATH的个数,由于每一行对应一个XPATH,同一页中每一行的初始XPATH相同,相同初始XPATH的个数即为本行的行数。
基于以上方案,所述步骤S4中数据抓取的具体方法为:在所述要抓取的数据的XPATH后添加所述值属性的取值操作。
特别地,所述值属性包括文本属性、超链接属性和标题属性;文本属性的所述取值操作为/text();超链接属性的所述取值操作为/@href;标题属性的所述取值操作为/@title。在此说明,实际的值属性类型还有很多,本实施例采用了其中三种作为取值操作的说明方案,在实际使用中,针对其他值属性,也可以根据各种值属性的取值操作方法将取值操作拼接在要抓取的数据的XPATH后。
针对现有技术存在的缺陷,本发明通过该***可实现按需获取XPATH并对目标***进行数据爬取,极大的提升了数据采集的效率。
特别说明的是,XPATH是用于指向XML文档中位置,selenium是一种web应用程序测试的工具,可直接运行于浏览器中,可实现模拟户浏览器操作。
Claims (7)
1.一种基于可视化操作获取XPATH的数据接口生成方法,其特征在于,包括以下步骤:
步骤S1:依据输入的目标网页地址下载该网页的数据结构,并将其在***的可视化界面进行展示;
步骤S2:在可视化界面的参数配置页面添加要抓取的数据,并录入数据类型,数据类型为列表类型或数值类型或字符串类型;
步骤S3:在可视化界面展示目标网页,光标移动到要抓取的数据的位置后得到标签,点击标签获取数据的XPATH地址;
步骤S4:根据要抓取的数据的值属性和XPATH完成数据抓取,并生成对外的API接口地址;
所述步骤S4中数据抓取的具体方法为:在所述要抓取的数据的XPATH后添加所述值属性的取值操作;
所述值属性包括文本属性、超链接属性和标题属性;文本属性的所述取值操作为/text();超链接属性的所述取值操作为/@href;标题属性的所述取值操作为/@title。
2.根据权利要求1所述的一种基于可视化操作获取XPATH的数据接口生成方法,其特征在于,在所述步骤S1中下载该网页的数据结构前判断目标网页是否需要配置登录模板,若是则配置登录模板,若否则不进行配置;登录模板包括用于目标网页登录的用户名和密码。
3.根据权利要求2所述的一种基于可视化操作获取XPATH的数据接口生成方法,其特征在于,所述配置登录模板具体包括以下步骤:
步骤S11:在登录模板配置页面中输入目标***的用户名和密码;
步骤S12:在登录模板配置页面中输入目标***的用户名控件和密码控件的XPATH地址;
步骤S13:在登录模板配置页面中输入登录按钮的XPATH地址;
步骤S14:将用户名和密码传入selenium中完成模拟登陆;
步骤S15:保存cookies到数据库。
4.根据权利要求3所述的一种基于可视化操作获取XPATH的数据接口生成方法,其特征在于,在步骤S2的录入操作前判断是否需要登录,若是则采用所述登录模板执行登录操作,若否则不执行登录操作。
5.根据权利要求4所述的一种基于可视化操作获取XPATH的数据接口生成方法,其特征在于,在所述步骤S2中采用所述登录模板执行登录操作的具体方法为:通过对应的所述登录模板,使用所述cookies并加载到当前selenium中。
6.根据权利要求1所述的一种基于可视化操作获取XPATH的数据接口生成方法,其特征在于,在所述步骤S2中,录入的数据类型不是列表类型,所述步骤S3中,获取数据的XPATH地址的方法具体包括以下步骤:
步骤S301:获取被点击的标签及其父标签;
步骤S302:递归获取父标签的父标签,直至获取顶层的<html>标签,得到要抓取的数据的XPATH。
7.根据权利要求1所述的一种基于可视化操作获取XPATH的数据接口生成方法,其特征在于,在所述步骤S2中,录入的数据类型是列表类型,所述步骤S3中,获取数据的XPATH地址的方法具体包括以下步骤:
步骤S311:获取被点击的标签及其父标签;
步骤S312:递归获取父标签的父标签,直至获取顶层的<html>标签,得到数据所在行的行XPATH,所述行XPATH为所述目标网页中每一行数据的初始XPATH;
步骤S313:获取所述目标网页中每一个数据所在的行数和列数,获取第一行数据中每一列数据的列标签;
步骤S314:获取每个数据的XPATH,具体方法为,在初始XPATH后拼接数据所在行的行数,得到数据带行数的XPATH;在数据带行数的XPATH后拼接该数据对应列标签,得到数据的XPATH,所述对应列标签为第一行数据中该数据所在列的数据的列标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111436066.1A CN113836450B (zh) | 2021-11-30 | 2021-11-30 | 一种基于可视化操作获取xpath的数据接口生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111436066.1A CN113836450B (zh) | 2021-11-30 | 2021-11-30 | 一种基于可视化操作获取xpath的数据接口生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113836450A CN113836450A (zh) | 2021-12-24 |
CN113836450B true CN113836450B (zh) | 2022-02-08 |
Family
ID=78971924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111436066.1A Active CN113836450B (zh) | 2021-11-30 | 2021-11-30 | 一种基于可视化操作获取xpath的数据接口生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836450B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977198A (zh) * | 2017-12-21 | 2018-05-01 | 中科点击(北京)科技有限公司 | 基于爬虫技术生成应用程序编程接口api的方法及装置 |
CN108182370A (zh) * | 2018-02-02 | 2018-06-19 | 上海斗象信息科技有限公司 | 基于动静态分离模板的客户端网页篡改检测方法 |
CN111813443A (zh) * | 2020-07-28 | 2020-10-23 | 南京大学 | 一种用JavaFX进行代码样例自动填充的方法和工具 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0011426D0 (en) * | 2000-05-11 | 2000-06-28 | Charteris Limited | A method for transforming documents written in different XML-based languages |
US7213200B2 (en) * | 2002-04-23 | 2007-05-01 | International Business Machines Corporation | Selectable methods for generating robust XPath expressions |
US8321845B2 (en) * | 2006-10-13 | 2012-11-27 | International Business Machines Corporation | Extensible markup language (XML) path (XPATH) debugging framework |
CN101339500B (zh) * | 2008-05-22 | 2010-06-09 | 清华大学 | 基于xml模式的数据绑定应用程序接口生成方法 |
CN101639827A (zh) * | 2009-07-24 | 2010-02-03 | 北京中文在线文化发展有限公司 | 图书元数据生成方法 |
US20120131556A1 (en) * | 2010-11-19 | 2012-05-24 | International Business Machines Corporation | Xpath-based selection assistance of gui elements during manual test script authoring for xml-based applications |
CN104965901A (zh) * | 2015-06-30 | 2015-10-07 | 北京奇虎科技有限公司 | 一种目标页面内容抓取方法和装置 |
CN106484775A (zh) * | 2016-09-12 | 2017-03-08 | 北京量科邦信息技术有限公司 | 一种基于selenium的爬虫抓取方法及*** |
CN110263266A (zh) * | 2019-05-20 | 2019-09-20 | 江苏大学 | 一种基于微信小程序和爬虫的数据展示方法 |
CN112256944A (zh) * | 2020-10-26 | 2021-01-22 | 四川长虹电器股份有限公司 | 基于JMeter的网站数据自动爬取方法 |
CN112307398A (zh) * | 2020-10-30 | 2021-02-02 | 广州朗国电子科技有限公司 | 一种自动将接口数据转为网页的方法及存储介质 |
CN113515682B (zh) * | 2021-05-19 | 2024-07-02 | 平安国际智慧城市科技股份有限公司 | 数据爬取方法、装置、计算机设备和存储介质 |
-
2021
- 2021-11-30 CN CN202111436066.1A patent/CN113836450B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977198A (zh) * | 2017-12-21 | 2018-05-01 | 中科点击(北京)科技有限公司 | 基于爬虫技术生成应用程序编程接口api的方法及装置 |
CN108182370A (zh) * | 2018-02-02 | 2018-06-19 | 上海斗象信息科技有限公司 | 基于动静态分离模板的客户端网页篡改检测方法 |
CN111813443A (zh) * | 2020-07-28 | 2020-10-23 | 南京大学 | 一种用JavaFX进行代码样例自动填充的方法和工具 |
Non-Patent Citations (2)
Title |
---|
Introduction to using XPath in JavaScript;MDN contributors;《https://developer.mozilla.org/en-US/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript》;20211009;1-7 * |
一种基于开放数据接口的新一代商务搜索引擎技术;胡英 等;《计算机工程》;20021130;第28卷(第11期);248-250 * |
Also Published As
Publication number | Publication date |
---|---|
CN113836450A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8230320B2 (en) | Method and system for social bookmarking of resources exposed in web pages that don't follow the representational state transfer architectural style (REST) | |
US20020188890A1 (en) | System and method for testing an application | |
US9015144B2 (en) | Configuring web crawler to extract web page information | |
CN102597993B (zh) | 利用统一资源标识符管理应用状态信息 | |
CN106897215A (zh) | 一种基于WebView网页加载性能及用户行为流数据采集的方法 | |
KR101569984B1 (ko) | 웹 스크래핑 추출 데이터 설정 방법 | |
US20020103896A1 (en) | HTTP transaction monitor | |
JP2002189595A (ja) | リフレッシュ可能なWebクエリを作成するための統合された方法 | |
CA2674659A1 (en) | Synchronous to asynchronous web page conversion | |
KR20060079080A (ko) | 웹페이지의 양상을 평가하기 위한 방법 및 장치 | |
US10901730B2 (en) | Identifying equivalent javascript events | |
CN110851681B (zh) | 爬虫处理方法、装置、服务器及计算机可读存储介质 | |
US20220350857A1 (en) | Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors | |
CN104615748B (zh) | 基于Watir的物联网Web事件处理方法 | |
CN103377128A (zh) | 用于Web应用的竞争检测的方法和*** | |
CN103177115A (zh) | 一种提取网页页面链接的方法和装置 | |
CN109408763B (zh) | 一种对不同模板的简历进行管理的方法及*** | |
Montoto et al. | Automated browsing in AJAX websites | |
CN103853717A (zh) | 网络爬虫 | |
CN104361093A (zh) | 一种通用的Web自动浏览导航方法 | |
CN113849718A (zh) | 互联网烟草科技情报信息自动采集装置、方法与存储介质 | |
CN117520690A (zh) | 基于css样式预渲染对比的ui自动化方法及相关装置 | |
US20050055438A1 (en) | Computer-implemented system and method for data collection | |
CN113836450B (zh) | 一种基于可视化操作获取xpath的数据接口生成方法 | |
US20240037325A1 (en) | Ability to add non-direct ancestor columns in child spreadsheets |
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 |