【技术实现步骤摘要】
基于xpath的数据采集方法、电子设备及存储介质
本专利技术涉及数据采集
,具体涉及到一种基于xpath的数据采集方法、系统、电子设备及存储介质。
技术介绍
网页数据采集一般是依靠技术人员根据客户的采集需求,分析网页的组成结构,使用firebug或者浏览器自带xpath提取工具,或者分析dom结构等来定位采集对象元素,然后依据一定的采集框架,编写对应的采集程序,爬虫代码无法自动编程及调用。
技术实现思路
有鉴于此,本专利技术实施例提供了一种基于xpath的数据采集方法、系统、电子设备及存储介质,以解决现有技术中浏览器爬虫代码无法自动编程及调用的问题。为此,本专利技术实施例提供了如下技术方案:根据第一方面,本专利技术实施例提供了一种基于xpath的数据采集方法,包括:接收列表页中的至少两个列表页点击事件,得到与所述列表页点击事件相对应的列表页点击元素的xpath路径;对所述列表页点击元素的xpath路径进行合并,得到列表页合并路径,所述列表页合并路径是从父级节点向下直至第一个元素名相同 ...
【技术保护点】
1.一种基于xpath的数据采集方法,其特征在于,包括:/n接收列表页中的至少两个列表页点击事件,得到与所述列表页点击事件相对应的列表页点击元素的xpath路径;/n对所述列表页点击元素的xpath路径进行合并,得到列表页合并路径,所述列表页合并路径是从父级节点向下直至第一个元素名相同且位置不同的叶子节点,并去掉所述叶子节点的位置信息后得到的xpath路径;/n在所述列表页中查找与所述列表页合并路径具有相同路径的列表,生成列表页链接集合;/n进入所述列表页链接集合中的任意一个链接,打开相应的详情页,根据所述详情页的页面采集对象确定采集模式,其中,所述采集模式是预先设定的,包 ...
【技术特征摘要】 【专利技术属性】
1.一种基于xpath的数据采集方法,其特征在于,包括:
接收列表页中的至少两个列表页点击事件,得到与所述列表页点击事件相对应的列表页点击元素的xpath路径;
对所述列表页点击元素的xpath路径进行合并,得到列表页合并路径,所述列表页合并路径是从父级节点向下直至第一个元素名相同且位置不同的叶子节点,并去掉所述叶子节点的位置信息后得到的xpath路径;
在所述列表页中查找与所述列表页合并路径具有相同路径的列表,生成列表页链接集合;
进入所述列表页链接集合中的任意一个链接,打开相应的详情页,根据所述详情页的页面采集对象确定采集模式,其中,所述采集模式是预先设定的,包括分组采集和不分组采集;
若所述采集模式为不分组模式,则所述详情页为详细页面,接收详情页点击元素的xpath路径;
根据详情页点击元素的xpath路径,通过文本提取的方式提取详情页点击元素所对应的文本信息;
根据所述详情页点击元素xpath路径和所对应的文本信息对所述列表页链接集合中的每一个链接分别进行数据采集。
2.如权利要求1所述的基于xpath的数据采集方法,其特征在于,还包括:
若所述采集模式为分组模式,则所述详情页包含多个详情页分组节点,接收详情页分组节点点击元素的xpath路径;
根据详情页分组节点点击元素的xpath路径,得到详情页分组节点中与详情页分组节点点击元素相似的所有元素的xpath路径,生成详情页分组节点集合;
对详情页分组节点集合中任意一个详情页分组节点中的点击元素的xpath路径进行分组合并,得到详情页分组节点xpath路径,所述详情页分组节点xpath路径包含用于定位详情页分组节点的分组标记,所述分组标记位于组内点击元素的父节点元素所在位置的后面且紧邻所述父节点元素;
进入详情页分组节点集合中任意一个详情页分组节点,打开相应的分组节点,接收详情页点击元素的xpath路径;
根据详情页点击元素的xpath路径,通过文本提取的方式提取所述详情页点击元素所对应的文本信息;
根据所述详情页点击元素的xpath路径和所对应的文本信息对所述详情页分组节点集合中每一个详情页分组节点分别进行数据分组采集;
根据详情页分组节点点击元素的xpath路径,对所述列表页链接集合中的每一个链接分别进行数据采集。
3.如权利要求1所述的基于xpath的数据采集方法,其特征在于,对所述列表页点击元素的xpath路径进行合并的步骤中,包括:
对列表页点击元素的xpath路径的各级节点的节点类型进行逐一比较;
若节点类型比较结果不一致,则终止合并;
若节点类型比较结果一致,则对各级节点的节点名进行逐一比较;
若节点名比较结果一致,则终止合并;
若节点名比较结果不一致,则从父级节点向下查找到第一个元素名相同且位置不同的叶子节点,去掉所述叶子节点的位置信息,得到列表页合并路径。
4.如权利要求1所述的基于xpath的数据采集方法,其特征在于,提取点击元素的文本信息,包括:
若点击元素的元素名为INPUT,并且INPUT的类型为button、reset或者submit,则文本信息为点击元素所对应的value值;
若点击元素的元素名为LABLE,则文本信息为点击元素所对应的textContent;
若点击元素的元素名为SELECT,则文本信息为点击元素所对应的name;
若点击元素的元素名不为INPUT、LABLE和SELECT,则判断点击元素所对应的innerText是否为空;
技术研发人员:宋岩强,李青龙,
申请(专利权)人:北京智慧星光信息技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。