1.前言
网页自动化操作中,最常见的场景就是获取指定页面的数据信息。例如电商相关的网页,我们通常需要拿到商品名称、价格、店家等等信息;社媒相关的网页,我们通常需要拿到作品标题、作品详情内容、话题标签等等信息。为了实现这个目的,八爪鱼RPA提供了两种方法,方法一是利用单指令进行批量采集,方法二是结合多条指令进行逐条采集。
2.数据采集方法
2.1 批量采集
概述
打开八爪鱼RPA,搜索“数据采集”或直接点击软件顶端的“数据采集”即可使用指令,将它加入在流程中。可以采集列表、表格等数据,支持设置滚动加载、翻页、加载更多等,支持采集全部页面数据、指定条数或指定页数。
两种采集方式
【数据采集】指令包含智能采集和精准采集两种
(1)智能采集
智能采集适用于大部分采集场景,一键即可采集表格数据、列表数据,如京东商品列表、商品评论等。无需手动操作,智能识别网页上需要采集的数据。使用方法:打开待采集页面窗口置于前台,“Ctrl+点击”采集数据。
(2)精准采集
如果智能采集的数据不符合需求,冗余数据过多,可以采用精准采集。自定义选择网页上需要采集的部分,即可开始准确重复的采集。使用方法:数据预览界面,点击精准采集,进入精准采集模式,会自动清空原始采集数据,按“Ctrl+点击”选择目标数据即可,每次增加一列。
注意:若想了解详细步骤,可查阅数据采集
指令说明
(1)常规设置
- 网页对象:选择一个之前通过【打开网页】或【获取已打开的网页对象】指令创建的网页对象
- 采集目标一种对象,保存采集数据的xpath及相关配置,通过Ctrl+点击去选择要采集的内容。对于已经创建好的,可以点击编辑采集目标去修改里面的内容
- 翻页方式:当前网页的翻页方式,如果是瀑布流的(懒加载的)软件会自动加载,方式选“无”;其他翻页情况下选“无”,则不再进行翻页。①翻页按钮:从元素库中选择一个已捕获的元素或通过「捕获新元素」来捕获新的网页元素作为操作翻页按钮;②加载更多按钮:从元素库中选择一个已捕获的元素或通过「捕获新元素」来捕获新的网页元素作为操作加载更多的按钮
- 采集范围:默认采集全部数据,可以设置采集多少行或多少页的数据
- 采集数据保存至:
① 数据表格:输出的变量是数据表格的名称
②Excel:需设置导出到哪个文件中,可选择带表头和sheet页导出,输出的变量是Excel文件的路径
- 追加写入:指令多次执行时,当选择写入同一excel或数据表格时,可以选择覆盖现有数据和追加写入到同一个表格。使用的场景:处理翻页加载速度不一致的情况、处理有验证码出现的地方
- 输出变量:取决于选择的数据保存方式
(2)高级设置
- 滚动区域:①整页滚动:滚动整个网页;②指定区域滚动:滚动网页中指定的区域,如采集小红书评论
- 滚动方式:①直接滚动到底部:适用于网页大部分场景;②滚动一屏:主要针对部分网站如果滚动过快,中间的数据不会加载的情况
- 翻页间隔时间(s):主要用于解决翻页过快页面加载不完整或翻页过快会触发防采的场景,可等待页面加载完成再进入下一步
- 模拟人工点击翻页按钮:模拟人的操作,和元素点击一致
实际操作
创建第一个应用涉及博客标题、分类、简介信息的获取,采用的是逐条采集的方法,可将这一部分指令用【数据采集】指令替代,即给应用进行封装划分的子流程“3、获取当前页面所有博客信息”以及后续的翻页动作。
(1)首先打开八爪鱼博客网页,此时该网页处于激活状态,点击“数据采集”按钮,开始智能采集。按住ctrl+鼠标左键,即可将博客相关的信息一键获取
(2)根据实际情况填写【数据采集】指令中的参数。
- 网页对象选择已有的网页对象“八爪鱼博客网页”
- 当前网页是通过翻页按钮进行翻页,因此翻页方式选择翻页按钮。翻页按钮元素选择“按钮_有下一页”,该指令会自动完成翻页判断,若当前页面已经无法识别到“按钮_有下一页”元素,则表示已经到了最后一页,采集停止
- 根据实际需求,当前需要获取跟关键词相关的所有博客信息,因此采集范围选择“全部”
- 最终我们要将博客相关信息保存到指定的Excel表中,选择将采集数据保存至“Excel”
- 保存位置需要填写指定的Excel表对应的完整路径,勾选“带表头导出”和“追加写入”,“追加写入”非必选。
2.2 逐条采集
概述
逐条采集通常需要结合多条指令,即【循环相似元素】、【获取相关元素】和【获取网页元素信息】。该采集方式可用于解决【数据采集】指令覆盖不到的场景,例如不单单是要获取信息,还需要同时完成一些点击操作、填写操作等。
指令说明
(1)【循环相似元素】
主要用于定位并选中相似元素列表,便于后续对列表中的具体元素进行自动化操作。绝大部分场景下我们会需要对相似元素里的元素逐个进行处理,且处理逻辑都一样
举个例子,现在我们要记录八爪鱼RPA应用市场中的免费应用的应用名称,下图的应用就是相似元素列表,我们需要逐个处理每一个应用,当前循环项就是当前循环到的具体应用
注意:若想获取更多相似元素列表相关的内容,可查阅相似元素列表
(2)【获取相关元素】
该指令可获取指定元素的关联元素,常与【循环相似元素】连用
连用时,选择的元素是“当前循环项”,关联方式选择子元素。引用上面的例子,应用分为免费和付费,我们需要获取的是其中的免费应用。每个应用中包含了一系列元素,例如标题元素、标签元素、图标元素和付费方式元素等等,这些元素都是基于应用存在的,这证明这些元素都是当前循环到的应用的子元素。
(3)【获取网页元素信息】
该指令用于获取指定元素的信息,元素可能包含文本值、源代码、元素值、链接地址、属性等信息。
付费方式元素中包含了对应的文本信息,我们需要通过元素具体的文本值去判断当前循环到的应用是否是免费的。
实际操作
2.2.1 【获取已打开的网页对象】预先在浏览器中打开并筛选应用分类,选择“匹配当前选中的网页”即可选中已打开的“应用市场网页”
2.2.2 【循环相似元素(web)】依次循环八爪鱼应用市场网页中应用列表的每一项,将当前循环到的应用项命名为当前应用
2.2.3 【获取相关元素】获取当前应用的关联元素,该应用中的关联方式都是第一个匹配的子孙元素。以付费方式为例,应用标题同理,因此不再赘述
注意:相对Xpath的获取方式可查阅创建第一个应用中的同一指令,或系统学习XPATH系统学习与实例
2.2.4 【获取网页元素信息】获取“网页关联元素_付费方式”的文本值,用于后续做判断
2.2.5 【If条件】检测当前“网页关联元素_付费方式”的文本值是否等于“免费”
注意:每个if判断相关的指令都会自动连带“End If”指令,该指令不需要输入参数,也不能删除,否则会报错。
2.2.8 【按行写入内容至数据表格】若当前应用为免费的,则写入数据表格第一列中