Automa教程
Automa工作流表达式
在使用 Automa 创建工作流时,可能经常需要将动态数据插入到模块中。为此,Automa 提供了强大的表达式系统,基于 Mustache 模板并扩展了多个数据源和函数。通过这些表达式,你可以轻松地从变量、表格、循环数据等来源提取数据,并将其动态注入到你的模块中。
动态数据来源
Automa 支持从多个数据源中提取数据来设置动态值:
- table:从表中获取数据,例如
{{table.0.color}}
来获取第一行的 color 值。 - variables:从变量中提取数据,例如
{{variables.socials}}
。 - loopData:获取循环模块的当前迭代数据,使用
loopData.<loopId>
。 - prevBlockData:获取上一个模块的输出数据。
- globalData:访问工作流的全局数据。
- googleSheets:从 Google 表格中获取数据,使用
googleSheets.<referenceKey>
。 - activeTabUrl:获取当前浏览器标签页的 URL。
- workflow:访问由执行的工作流模块中产生的数据,使用
workflow.<executeId>
。
基础表达式语法
表达式的基础形式是 {{ keyword }}
,其中 keyword
可以是上文提到的数据源。Automa 会通过这种格式区分静态数据和动态数据。
示例:
假设你有一个变量 socials
,其值为:
json
[
{ "name": "GitHub", "url": "https://github.com/AutomaApp" },
{ "name": "Twitter", "url": "https://twitter.com/AutomaApp" },
{ "name": "Discord", "url": "https://discord.gg/C6khwwTE84" }
]
要在 HTTP 请求的正文中发送这个变量的数据,可以使用以下表达式:
html{{variables.socials}}
如果你想获取数组中的第一个元素并访问 url
属性,可以使用:
html{{variables.socials.0.url}}
内置函数
Automa 还支持一系列内置函数,帮助你执行常见的计算和操作。例如:
$date(date, dateFormat?)
:获取或格式化日期,如{{$date('DD-MM-YYYY')}}
会返回当前日期的格式化版本。$randint(min?, max?)
:生成一个随机数,如{{$randint(0, 100)}}
会生成一个 0 到 100 之间的随机数。$getLength(str)
:获取字符串或数组的长度。$increment(value, incrementBy)
:执行加法操作。$replace(value, search, replace)
:在字符串中替换值。
函数示例:
js
{{$increment(10, 2)}} // 输出 12
{{$date('DD-MM-YYYY')}} // 输出当前日期
{{$randData('?l?u?d')}} // 生成随机字符,例如 "A2b"
访问表达式内部的数据
要访问表达式内部的数据,需要使用方括号将表达式括起来。例如,使用 $increment
函数增加变量值:
html{{$increment([variables.counter], 1)}}
复杂表达式与 JavaScript
在基于 Chromium 的浏览器中,Automa 还支持在表达式中使用 JavaScript。例如,获取表的最后一行数据可以写为:
js
{{table[table.length - 1].columnName}}
也可以直接获取当前的时间戳:
js
{{Date.now()}}
通过使用 Automa 的动态表达式功能,能够为模块动态设置值,结合 Mustache 模板和内置的函数,轻松管理复杂的工作流逻辑。无论是简单的数据替换,还是复杂的运算与数据查询,Automa 提供了丰富的工具,让你在构建自动化流程时更加高效。
阅读全文
×
初次访问:反爬虫,人机识别