Automa类似于RPA机器人,可自动操作浏览器的元素。目前有支持谷歌和火狐的浏览器插件。
存储
提供了变量和表格的全局数据缓存方式,设置后可在工作流中使用相关表达式来调用存储数据。表达式语法可查看官网。链接: https://docs.automa.site/workflow/expressions.html
HTTP的GET请求
这里我在触发器中添加了个局部变量month。并将下面http请求到的数据分配给该变量。
设置http的请求方式、地址、请求头。若要处理响应数据,需设置响应数据格式、并将响应数据分配到变量来操作。Data path为你的数据节点。(我这里的请求为获取12个月份,并将响应数据分配到变量month,循环百度搜索month中的12个月份)。
循环数据需要设置循环断点,循环断点需设置循环数据的id,代表循环的起点和终点,这里中间的新建标签页和表单就是循环的内容。可以设置循环的最大次数,0代表不设置。
运行结果如图:可以看到上面打开了多个百度网页,分别搜索12个月份。
工作流运行日志查看
HTTP的POST请求
我这里需要采集一个网页的数据,并使用HTTP接口上传。
看上图中是一个数据表,用变量存储较为麻烦,可以使用存储中的表格来存储采集到的数据。创建一个表格,添加表格字段,我这里只需要图上的两列数据,只需要添加两个字段即可。
将表格添加到工作流中
循环表格的每一行
将每一行需要的列单元格据合并到一个模块组里,分别插入到对应表格字段里。这里用表达式$increment(value, incrementBy) 来递增循环索引。
//我这里的css选择器:
//$increment([loopData.tr.$index],1)=>$increment([循环数据.循环id.$index],增量)
//第1列数据
tbody:nth-child(53) > tr:nth-child({{$increment([loopData.tr.$index],1)}}) > td:nth-child(1)
//第2列数据
tbody:nth-child(53) > tr:nth-child({{$increment([loopData.tr.$index],1)}}) > td:nth-child(2)
然后使用http请求将你的表格数据提交上去。body中可以直接提交整个表格。
查看日志是否抓取到数据并填充到表格里。可以看到表格其实也就是个json格式。
后台查看是否接收到数据。
注意:表格中的数据会一直存储,可搭配业务添加表格数据,运行时不要操作浏览器,这个会打断工作流的自动运行。此外,若是设置了定时任务,需要浏览器是打开的,关闭浏览器不会触发任务。