技术工具

RPA 与 Selenium

一个机器人,像人一样通过屏幕操作软件。

RPA 是「机器人流程自动化」的缩写,听起来比实情气派得多。一个程序替人点按钮、填字段。Selenium 是在浏览器里做这件事最知名的工具。

它之所以重要,是因为每家中小企业迟早都会撞上的一个问题:存着你数据的那个系统,没有正经的办法和别的软件对话。老旧的会计软件、供应商门户、政府网站,还有那个自 2014 年就没人更新过的行业工具。没有 API,导出也没什么用,供应商更不会为你专门做一个。

RPA 就是入口。只要人在屏幕上能做的,它通常也能做 —— 早上 6 点,天天如此,做到第四十条记录也不会烦。它同时也是本页最脆弱的一项;谁要是跟你说不是,那他没维护过。

现在

每天早上,有人登录三个供应商门户,各下载一份库存文件,打开它们,把要紧的列复制到一张主表里,再修好格式。四十分钟,而且是他工作里最没意思的一段。

之后

早上 6 点,机器人已经把三个都做完了,在报表系统会去取的位置留下一份干净文件。你的同事打开的是一张成品表。哪天某个门户改了版,他收到的是一封邮件,而不是一个意外。

这东西为什么存在

RPA 的位置很微妙。它既是我们所做的最不优雅的东西,有时又是唯一行得通的办法,这层张力值得理解。

软件本该通过 API 与另一个软件对话 —— 一条正经的、有文档的、专为此设计的连接。有 API 时,我们每次都用它。它更快,别人改版页面时它不会坏,出问题时它会明确告诉你。

问题在于,马来西亚中小企业依赖的软件里,有很大一部分根本没有 API。2000 年代的会计套件。为人使用而建的供应商门户。政府申报网站。那个十年没更新过的行业专用工具。供应商不会为你做一个 API,而更换系统的代价又高过问题本身。

于是剩下的选项就是操作界面:一个程序打开浏览器、登录、点击、输入、读取,和人做的一模一样。它不优雅,而它往往就是「每天四十分钟的复制粘贴」和「零」之间的差别。

怎样建一个不会三天两头坏的

RPA 脆弱的名声,在粗糙实现的情况下当之无愧;而在认真实现的情况下,大体可以避免。

脆弱的做法是录下某人的点击,然后按屏幕坐标回放。这在版式移动几个像素之前都好用 —— 一个更长的产品名、一条新横幅、一个不同的屏幕尺寸 —— 之后它就会悄悄点错东西。录制宏,正是人们认为 RPA 不管用的原因。

耐用的做法是锚定有含义的东西而非位置:标着「Username」的字段、文字为「Export」的按钮、表头为「Quantity」那一列的单元格。这些在改版中存活得好得多,因为页面上的文字远比它的版式更少变动。

然后它需要检查自己的成果。页面真的加载了吗?下载的文件大小合理吗?总额和昨天大致对得上吗?一个会停下来给你发邮件的机器人只是小麻烦。一个悄悄失败、连喂你两周空数据的,才是真问题 —— 而两者的差别,完全在于它建得有多用心。

这件事会在哪里出岔子

自动化了你无权自动化的东西

有些网站在条款中禁止自动访问,银行门户尤其当真。我们会在开工前核对,如果有什么看起来越了界,我们会告诉你,而不是闷头做掉。

明明有 API 却不用

如果存在有文档的连接,改去操作界面只会更慢、更脆弱,而且毫无好处。在断定没有之前,值得再问供应商一次。

维护一分钱都不留

这是本站唯一一项确实需要持续照看的东西。请预期每个门户每年有一两次小的维护,并对任何承诺相反的人保持怀疑。

我们实际怎么做

  1. 01
    我们看着人做一遍

    每一次点击、每一个字段,包括那些他们想都不想就做了的动作。

  2. 02
    我们照着这个写脚本

    锚定在页面上稳定的元素而不是像素位置,这样小幅改版不会把它弄坏。

  3. 03
    我们加上校验

    页面加载了吗?数字看着合理吗?保存真的保存上了吗?一个会大声报错的机器人,远好过一个悄悄失败的。

  4. 04
    我们排期并监控它

    它自己运行;网站在它底下变了,它会给你发邮件。

适合的情况
  • 系统没有 API,供应商也不打算做
  • 每天都有人登录门户网站,把同样的数字拷出来
  • 供应商或银行网站需要定时查看
不适合的情况
  • 已经有现成的 API —— 那就用它,更快也稳得多
  • 界面经常改版;页面一变,机器人就失效
  • 它需要一个你无权自动登录的账号。先看条款
我们需要你提供什么
  • 一个允许自动化使用的登录账号
  • 确认自动化不违反该网站的条款
  • 源系统变更时可以找的人
典型时间线

每个门户 1–2 周。请为维护预留一点持续时间 —— 这一项确实需要。

关于这项,大家都问什么

这样做合规吗?

通常是的,只要是你自己的账号和自己的数据 —— 但第三方网站的条款要先看。如果有什么像是越了界,我们会提出来,而不是闷头做掉。

网站改版了会怎样?

它会失效,并且会告诉你。这正是我们做校验的原因。每个门户每年预计需要一两次小的维护。

这适合你吗?

第一次通话免费;如果这不是解决你问题的对的工具,我们会直说。

预约免费通话