大家好,我是何三,独立开发者

你知道吗,现在企业买个RPA(机器人流程自动化)软件,一年少说也得花个5万美元。UiPath、Automation Anywhere这些商业软件,功能确实强大,但那个价格——说实话,小公司看了都得倒吸一口凉气。

最近我发现了个开源项目,叫RPALite。这玩意儿只有36个Star,但真的有点东西。

它用Python脚本就能搞定大部分RPA需求,一个命令就能启动自动化流程。说白了,就是把那些动辄几万美元的RPA功能,用开源的方式给你实现了。

RPALite封面

RPA到底是个啥?

先别被"机器人流程自动化"这个高大上的词吓到。说白了,RPA就是让电脑模仿人类操作电脑。

比如你每天上班第一件事:打开邮箱、下载附件、把数据填到Excel里、再上传到系统。这种重复性工作,RPA就能帮你自动完成。

以前你要么得雇个人专门干这个,要么花大价钱买商业软件。现在呢?用Python写个脚本就行了。

RPALite就是这么个东西。它提供了一整套API,让你能用Python控制鼠标、键盘、识别屏幕上的文字和图片。

举个例子,你想自动登录某个网站:

from RPALite import RPALite

rpa = RPALite()

# 打开浏览器
rpa.run_command("chrome.exe")

# 等页面加载
rpa.wait_until_text_shown("登录", timeout=10)

# 点击登录按钮
rpa.click_by_text("登录")

# 输入用户名密码
rpa.enter_in_field("用户名", "your_username")
rpa.enter_in_field("密码", "your_password")

# 截图保存
rpa.take_screenshot(filename="login_result.png")

就这么几行代码,一个自动化登录流程就搞定了。

为什么说它"降维打击"?

商业RPA软件有个很大的问题:学习成本太高

你得学它们专用的开发语言,得参加官方培训,得考认证。一套流程下来,没个几万块搞不定。

RPALite不一样。你会Python吗?会的话就能用。

这让我想起前两年低代码平台刚火的时候,大家都说"不用写代码就能开发应用"。结果呢?最后发现还是写代码最灵活。

RPALite就是这个思路:不搞花里胡哨的拖拽界面,就用Python脚本,让程序员用最熟悉的方式解决问题。

而且它支持Robot Framework。如果你做测试自动化,对这个应该不陌生。RPALite可以直接集成进去,让你的自动化测试脚本也能控制UI。

*** Settings ***
Library RPALite

*** Test Cases ***
自动化登录测试
    ${position} = Wait Until Text Shown 登录 timeout=10
    Click By Text 登录
    Enter In Field 用户名 my_user
    Enter In Field 密码 my_password
    ${screenshot} = Take Screenshot filename=login_screen.png

说实话,看到Robot Framework支持这块,我第一反应是:这作者挺懂测试工程师的痛点啊。

RPALite工作原理

技术细节有点意思

RPALite底层用了两个OCR引擎:EasyOCR和PaddleOCR。

EasyOCR大家都知道,多语言支持好,识别率不错。PaddleOCR呢?百度开源的,对中文识别特别友好。

你可以根据需求选:

# 用EasyOCR(默认)
rpa = RPALite()

# 用PaddleOCR(中文识别更好)
rpa = RPALite(ocr_engine="paddleocr")

这设计挺聪明的。大部分RPA场景都需要文字识别,选对引擎能省不少事。

还有个功能我特别喜欢:自动语言检测

它会根据你操作系统的语言设置,自动加载对应的OCR语言包。中文系统就加载中文识别,英文系统就加载英文识别。

不用手动配置,这点对新手很友好。

现在就能上手试试

安装很简单:

pip install RPALite

Windows用户直接就能用。macOS用户需要配置一下权限(屏幕录制、辅助功能这些),Linux用户得装xdotool、wmctrl这些依赖。

我建议先从Windows开始试。打开记事本,试试这个:

from RPALite import RPALite

rpa = RPALite()

# 显示桌面
rpa.show_desktop()

# 打开记事本
rpa.run_command("notepad.exe")

# 输入文字
rpa.input_text("这是用RPALite自动输入的文字\n")

# 保存(Ctrl+S)
rpa.send_keys("^s")

# 输入文件名
rpa.input_text("test.txt")

# 回车保存
rpa.send_keys("{ENTER}")

# 关闭记事本
app = rpa.find_application(".*Notepad")
rpa.close_app(app)

跑一遍,看看效果。你会发现,原来自动化可以这么简单。

RPALite vs 传统RPA

缺点也得说说

RPALite现在只有36个Star,热度确实不高。

项目最近一次更新是9个月前,活跃度一般。功能上相比成熟的商业RPA工具,肯定有差距。

比如复杂的业务流程编排、异常处理机制、企业级管理后台这些,RPALite暂时还没有。

但话说回来,对于个人开发者、小团队来说,这些功能可能也用不上。

我们需要的就是一个轻量级的、能用Python脚本控制的自动化工具。从这个角度看,RPALite已经够用了。

同类工具链

如果你对自动化感兴趣,我之前还写过几个相关项目:

  1. Playwright - 微软开源的浏览器自动化工具,比Selenium快很多
  2. AutoHotkey - Windows下的键盘鼠标自动化神器,老牌工具了
  3. SikuliX - 基于图像识别的自动化工具,视觉自动化领域的经典

不过说实话,这些工具各有各的定位。Playwright专注浏览器,AutoHotkey专注Windows桌面,SikuliX专注图像识别。

RPALite的特别之处在于:它想做一个通用的RPA框架。虽然现在功能还不完善,但这个方向很有意思。

最后说两句

RPA这个市场,商业软件已经玩了很多年。UiPath上市的时候市值几百亿美元,你就知道这玩意儿有多赚钱。

但现在开源社区也开始介入了。RPALite就是个例子——用Python脚本降低门槛,让更多开发者能玩转自动化。

36个Star确实不多,但我觉得这个项目有潜力。毕竟,谁会拒绝一个免费的开源RPA工具呢?

如果你正在为重复性工作发愁,或者想试试自动化开发,RPALite值得一试。至少,它能让你省下几万美元的软件费用。

本文使用 MGO 编辑并发布

关注"何三笔记",回复"mgo" 免费下载使用