影刀RPA新手教程:库存预警机器人——每天自动巡检并写入Excel

做电商运营最怕的不是没单,是断货。爆款卖到一半库存见底,等你在后台看见的时候,超时发货的投诉已经在路上了。我第一份运营工作就吃过这个亏,一款卖得不错的单品断货两天,恢复上架后流量掉了一半,缓了半个多月。

后来我用影刀RPA搭了一个库存预警机器人,每天早晚各自动巡检一遍在售商品,库存低于安全线就写进Excel台账并往群里发消息。这套东西我做了两年,迭代过三版,现在把我认为最适合新手的一版完整拆给你,跟着做大概一个下午能搭出来。

这个项目麻雀虽小五脏俱全:读表、循环、网页自动化、条件判断、异常处理、定时任务全用上了,做完这一个流程,影刀RPA日常开发的主干技能基本就过了一遍。

项目总览:这个机器人每天干什么

先看整体,机器人每天按计划触发一次,做五件事:

在这里插入图片描述

  1. 读取"商品台账.xlsx"里的在售商品清单
  2. 循环每个商品,打开它的后台或前台页面,读取当前库存和销量
  3. 用库存减去预估日销,判断还能撑几天
  4. 把结果写回Excel台账的"今日库存"列
  5. 撑不过安全天数的商品,发飞书群通知并邮件抄送你

设计上最核心的一个决定:预警逻辑不要写成"库存小于100"这种绝对值,要写成"预计可售天数小于3天"。 每个商品的日销量差几十倍,绝对值阈值要么误报要么漏报,这是我的第一版踩过的坑。

对应地,台账表多两列:预估日销(人工每周更新一次)、安全天数(统一填3)。结构如下:

商品ID商品名称商品链接安全天数预估日销今日库存巡检时间

第一步:安装影刀和搭好最小环境

还没装影刀RPA的先补这一步。官网下载安装包,一路下一步装完,注册登录后先进设置,把浏览器插件装上——做库存巡检必须操作浏览器,插件是影刀和Chrome/Edge之间通信的桥梁,没插件后面全部抓瞎。

编辑器界面花两分钟认一下:左侧是指令区,所有能力都在这里按分类摆着;中间是流程画布,指令拖进来就生效;右侧是指令详情面板,选中某条指令后在这里填参数;底部是日志输出区,调试全靠它。
在这里插入图片描述

版本选择上,社区版免费,每天30分钟运行时长,做这个巡检机器人绰绰有余(实测单次巡检200个商品只要十几分钟);量特别大或要无人值守挂多任务,再考虑创业版。新手别纠结版本,先用社区版跑通。

第二步:读台账与循环设计

流程第一条指令是【打开】Excel文件,然后用【读取区域】把商品清单整个读进变量,得到一个列表,每一行是一个子列表。

循环用ForEach列表循环。这里新手容易选错指令:For次数循环是"跑固定次数",ForEach是"逐个处理列表里的每一项",台账是变长的,商品加了减了流程不用动,所以必须是ForEach。

循环体内第一件事是从当前行里取出商品链接。列表的行数据按下标取,注意下标从0开始,台账里链接在第3列就是取下标2——这个差一错误( off-by-one)是我见过新手栽得最多的一跤,多试一次就记住了。

第三步:打开商品页并读取库存

拿到链接后用【打开网页】指令打开,URL参数填链接变量,打开方式选当前标签页。

库存数字怎么读,取决于你从哪里读。两种主流来源:

在这里插入图片描述

  1. 后台商品管理页:库存数据准,但登录态维护麻烦,页面结构随平台改版波动
  2. 前台商品详情页:不需要登录,看"库存X件"或加购时的库存提示,缺点是部分平台不显示精确库存

我用的是前台方案,加后台兜底。前台页面用【等待元素(web)】等库存信息元素出现,然后【获取文本】抓出来。前台有时显示"仅剩X件"这种模糊文案,用正则把数字抠出来:

# 输入:stock_raw,从页面抓到的库存原始文本,如 "仅剩12件" 或 "有货"
# 输出:stock_num,int类型的库存数字;抓不到数字时返回 -1

import re

# 正则找出文本里的所有数字串,取第一个作为库存数
nums = re.findall(r'\d+', stock_raw)

if nums:
    stock_num = int(nums[0])
else:
    # "有货""充足"这类没数字的文案,视作库存充足,给一个足够大的数
    if '有货' in stock_raw or '充足' in stock_raw:
        stock_num = 9999
    else:
        stock_num = -1  # -1 表示本次采集失败,后面单独处理

-1哨兵值的思路和之前讲价格清洗时一样:失败和"库存为0"是两回事,绝不能混在一起,否则预警消息会吓到人。

第四步:预警判断与写入台账

库存拿到后进入判断。用If条件判断指令,条件是"今日库存 ÷ 预估日销 < 安全天数",再排除采集失败(库存等于-1)的情况。判断失败的商品不参与预警,单独记日志。

判断为预警的商品做两件事。第一件写台账:【写入单元格】把今日库存和时间写回当前行对应列,再把商品名追加到预警汇总列表。第二件发通知,先攒着,巡检全部结束后一次性发。
在这里插入图片描述

为什么不每发现一个就发一条群消息?批量上架两百个商品赶上大促,消息能刷屏刷到运营把群设成免打扰,等于没有预警。攒齐了一次性发一份汇总,是通知设计的正确姿势。

写入台账时新手会碰到两个经典报错,提前打预防针:

报错原因解决
Array to String转换错误把列表变量直接写进单元格先用join转成字符串再写
日期变成一串数字写入了日期序列值写文本格式,或用写入日期数据指令

第五步:飞书群通知与邮件兜底

巡检循环跑完,用【飞书群通知】发汇总。这条指令需要先在飞书群里添加自定义机器人拿到Webhook地址,把地址填进指令参数就行,消息文本把预警商品列表拼成一段话。

消息格式我实测下来这样最实用:

【库存预警 9月26日 早】
今日预警 3 款,巡检正常 197 款,采集失败 0 款
1. 无线蓝牙耳机Pro:可售 1.8 天(库存36/日销20)
2. 硅胶手机壳-黑:可售 2.1 天(库存21/日销10)
请相关同学今天跟进补货,明细见共享台账。

采集失败次数这个数字一定要放进消息里。它是整个流程健康度的体检指标,如果某天突然变成10次,说明页面改版或登录态出问题了,比漏报库存更早暴露流程本身的故障。
在这里插入图片描述

需要留档的场景配一条【发送邮件】,收件人填老板或你自己的邮箱,多个邮箱用英文分号分隔,附件挂上更新后的台账。飞书负责"快",邮件负责"存",双通道互补。

第六步:定时任务,让它自己跑

流程验证跑通后,最后一步配置定时。单机方案:影刀客户端里的计划任务功能,新建计划,每天早上8点和晚上8点各触发一次,应用选这个流程,勾选"静默运行"减少干扰。

配定时任务有几个我踩过的坑:

  1. 电脑要设置不自动睡眠,否则半夜流程跑一半电脑睡了,早上看到的台账停在半路
  2. 计划任务触发时如果电脑锁屏,网页自动化一般还能跑,但涉及图像识别的操作可能失效,尽量让执行机器不锁屏
  3. 多个定时任务错开时间,别让巡检和你其他流程撞车抢浏览器
  4. 账号多台机器用的话,考虑影刀控制台:客户端开启调度模式变成机器人,云端统一下发计划任务,多台机器分摊巡检量

异常处理:让机器人坏得体面

无人值守的流程,异常处理不是可选项。整个巡检循环套Try-Catch结构:Catch块里【输出日志】记录商品ID和报错内容,再用截图指令把当时的页面存到固定文件夹,继续下一轮循环。Finally块里关掉当前标签页。

最外层再套一层Try-Catch兜底流程级错误(比如台账文件被占用打不开),Catch里发一条飞书消息告诉你"巡检没跑成"。机器人出问题不可怕,可怕的是出了问题你还以为它跑得好好的。
在这里插入图片描述

调试方面,影刀的断点用法要熟练:鼠标移到指令行号后空白处点击,出现橙色圆点即断点,运行到那里自动暂停,变量面板里能逐个检查当前行数据、库存文本、判断结果。我调这版流程的时候,就是靠断点发现某款商品的链接列里混进了一个空格,页面打开了404。

易错速查表

这个项目的高频故障浓缩成一张表,出问题先对这里:

现象/报错原因解决
读取区域拿到空列表台账文件被Excel占用关掉手工打开的Excel
库存全是-1页面改版或未登录看截图文件夹,重抓元素
预警消息一条不发判断条件写成了库存<安全天数核对是"可售天数<安全天数"
巡检到一半停了电脑休眠/社区版时长用尽关睡眠,控制单次巡检量
时间列显示数字日期序列值写入转文本或用日期写入指令

新手从这里往下走

这个库存机器人做完,你已经摸过影刀RPA的完整开发闭环:数据读取、循环、网页自动化、条件判断、异常处理、消息通知、定时调度。往下延伸,同样的骨架换个数据源就是价格监控,换个判断条件就是差评预警,骨架复用度极高。

完整流程源码我放在代码仓库 home.linyan.cloud,可以直接参考改造,台账模板和飞书通知的配置说明也一起打包在里面。

想再深入的话,官方帮助中心搜"计划任务"、“飞书群通知”、"try catch"三个词条,配合官方视频课程里的中级网页自动化篇,基本能覆盖你下一阶段的全部疑问。
在这里插入图片描述

#影刀RPA #RPA自动化 #库存预警 #定时任务 #Excel #电商运营

作者:林焱

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐