可视化样例一:数据获取

样例:批量获取网页搜索结果

样例场景

借助可视化功能编排流程,在百度中输入搜索关键词,将搜索结果前5页的标题和标题对应的页码信息写入到本地Excel表中。

具体步骤参考视频教程:

样例说明

此样例主要涉及到对浏览器和Excel的操作,操作网页的时候,需要通过捕获控件功能,获取页面输入框、按钮等元素,然后根据需求对它们进行相关操作;同时,由于需要获取多页标题数据,会使用到循环,阅读操作步骤时,建议关注一下对应的提示内容。

说明

  1. 控件是机器人可操作的具体元素,比如百度的输入框、“百度一下”按钮、“下一页”按钮、搜索结果的标题等。详见“捕捉控件”。

  2. 此样例旨在引导快速上手可视化组件,并非实际最优实践。

步骤1:访问百度搜索“阿里云”

1.在可视化工程主界面的画布区,开始节点之后,点击+号按钮,选择打开新网页组件,添加一个打开新网页组件。

3

2.在新增的打开新网页组件的属性区,输入需要打开的网址:www.baidu.com

4

说明

提示:图中的输出是指这个组件完成其功能后产出的结果,组件会给其默认一个名称,用于在后续的流程步骤中引用它(比如本步骤中,默认的v_web_obj_1代表的就是打开网页成功后,用v_web_obj_1来表示这个网页,后续要操作这个网页上的元素,会通过这个名称来引用),输入完组件的属性值后,点击三角形的执行按钮,验证一下能否自动打开网页吧!

3.在打开新网页后面新增一个填写输入框组件

说明

提示:搜索框中,支持模糊搜索,可以输入拼音,也可以输入汉字。

5

4.在填写输入框这个组件的属性区,在“已打开浏览器对象”处,选择上一步打开的网页的输出“v_web_obj_1”;在输入内容处,输入需要搜索的内容,这里以“阿里云”为搜索关键词;在属性区的“输入框控件”处,点击右侧的小按钮,引出附加菜单,单击附加菜单中的“捕捉新控件”选项。

说明

提示:所有的网页操作必须具备三要素:网页对象、控件对象、操作内容。

6

5.使用捕捉控件捕获百度输入框,并将捕获的控件命名为:1_百度输入框

重要

下面相关需要捕获的控件详细操作说明可参考:捕捉控件

77

6.在输入框控件中可选到刚才捕获到的控件(1_百度输入框),可以点击三角形的运行按钮验证一下迄今为止的步骤是否能顺畅执行(注意要先打开网页,才能操作网页上的对象哦)

9

7.捕获百度一下按钮,控件并命名为:2_百度一下按钮

捕获百度一下按钮

8.捕捉完成之后,在填写输入框(网页)组件后面新增一个点击控件(网页)的组件,并在“点击控件”这个组件的属性区,选择已打开的浏览器对象“v_web_obj_1”(即一开始我们打开新网页时的输出浏览器),目标控件选择“2百度一下按钮”即可,至此,我们完成了模拟百度一下的操作。

12

步骤2:使用相似控件捕获多个标题

1.成功百度搜索之后,接下来需要捕获所有阿里云的相关标题,这里我们需要用到捕获控件中的捕获相似控件功能,并将捕获的控件命名为:3_多个标题

说明

提示:下图中红框1先用捕捉控件按钮捕捉,红框2再使用捕捉相似控件按钮捕捉。

捕获相似标题

2.捕捉控件完成后,回到可视化画布界面,拖动“循环相似控件”组件到画布中,在此组件的属性区中,已打开的窗口或浏览器对象中选择“v_web_obj_1”(即一开始打开网页组件的输出浏览器对象),目标控件选择刚捕获到的“3多个标题”。

说明

提示:循环相似控件组件中,属性区域中的输出栏,每次循环项(v_element_item_1)指的是,在循环体中每次操作的单个控件对象,比如此例子中,相似控件有10个,在循环体内,每次引用“v_element_item_1”时,相当于是依次对单个控件进行操作。(若整个流程走到循环相似控件这个位置就没有继续走下去,也没有显示报错,却提示UnboundLocalError: local variable 'v_element_index_1' referenced before assignment,只需要在循环相似控件的高级选项中设置一下执行前延迟半秒即可)

15

3.在循环相似控件内部,新增一个“获取文本(网页)”组件,在属性区,输入选择v_web_obj_1(即最开始打开新网页组件中的输出浏览器对象),目标控件选择v_element_item_1(即上一步的输出“每次循环项”),控件索引选择v_element_index_1(即上一步的输出“每次循环索引”)。

16

步骤3:将采集的标题写入Excel

1.为记录数据,需要使用Excel,从组件功能区中,拖动启动Excel组件到“循环相似控件”之前,在启动Excel组件的属性区,点击新建Excel单选框。

172.单选选择“新建Excel”后,点击浏览按钮,选择Excel要保存的位置,然后在文件名栏自定义Excel文件名(需要带上Excel的后缀.xlsx),然后点击保存。

18

3.在启动Excel组件之后,新增获取当前激活的Sheet页组件,组件属性区中,已打开的Excel对象选择上一步的输出”v_excel_obj_1”。

说明

提示:打开Excel实际上是打开了一个Excel工作簿,一个工作簿中会有多个工作表(sheet),具体的数据操作必须要在工作表上进行,此步获取当前激活的sheet页,实际上是取工作簿打开后,默认展现的sheet页。

194.在循环体内部,新增一个在Excel末尾写入一行组件,在此组件的属性框中,已打开的sheet对象选择上一步输出的Sheet对象(v_sheet_obj_1),在写入内容处,需要写入一个形如[XXX, XXX, …]的数组(按照文本提示操作即可),点击右侧的按钮,在弹出的选项中选择“编辑表达式”。

说明

提示:形如[XXX, XXX, …]的数组,实际上是一种编程中的数据结构,它代表的是以英文逗号分隔开的多个数据的集合,一行数据有多列(列数不确定),因此在写入行的时候,需要使用这种数据结构来操作。比如向某一行写入[“标题1”,”标题2”,”标题3”],对应到表格中即是 :

205.在弹出的编辑表达式窗口中,输入:[v_web_text_1, "RPA机器人自动填表测试"],然后点击确定。至此,爬取单页搜索结果标题的任务流程已完成。

说明

提示:这里的v_web_text_1是此组件前,获取文本(网页)这个组件的输出变量名;如果需要填入的不是一个变量名而是文本,则需要加上英文格式双引号(逻辑类似于Excel函数公式操作中,文本要加双引号)。

21

6.为了爬取多页数据,需要捕获百度搜索结果页面中的下一页按钮,捕捉方法与上文所述的一致。

22

7.在画布页面中新增按照次数循环组件,此组件的属性框中,循环结束值设为5。

说明

提示:本案例中,循环起始值为1,结束值为5,步长为1,输出的每次循环输项v_range_item_1实际上就是从1逐次变化到5(1,2,3,4,5),为体现这种变化,下面的步骤会把它记录在Excel表中

23

8.将循环相似控件这个组件,拖动到按照次数循环组件中。

说明

提示:按照次数循环中嵌套循环相似控件,实际上就是,在每一页内,将每一个标题写到Excel表后,再点击下一页,重复操作,直到结束。

24

9.在循环相似控件组件内的Excel末尾写入一行组件的属性区中,单击写入内容框中的灰色框,进入编辑表达式界面,在原来的表达式后,加入v_range_item_1(即最终写入内容为:[v_web_text_1,"RPA机器人自动填表测试",v_range_item_1])

说明

提示:此处的v_range_item_1,即第7步中按照次数循环组件的属性区中,输出栏里的“每次循环项”中的值。

25

10.在循环相似控件组件后,新增一个点击控件(网页)组件,已打开的浏览器对象选择v_web_obj_1,目标控件选择“下一页按钮”,然后单击高级选项,在执行后延迟框中输入2。

说明

提示:此处请注意要将点击控件按钮放在“按次数循环”中,“循环相似控件”的下方,逻辑是,通过循环相似控件获取所有当页标题之后,再点击一页,重复这些操作直到次数到达先前设定的5次。此步骤设置执行后延迟的目的在于:给网页充足的反应时间。因为正常点击下一页,网页受限于网速,很难瞬间刷新页面内容,机器人在稳定的页面环境下才能发挥最佳效用,此处点击下一页后等待2秒,能保证网页稳定展现内容。

2611.在循环结束后,新增一个保存Excel组件,输入选择v_excel_obj_1(即先前启动的Excel组件的输出),至此,顺利搭建完成一个完整的流程,点击启动调试运行流程。27