影刀RPA新手教程:流程规划完全指南——怎么把一个复杂任务拆成小块

影刀RPA新手教程:流程规划完全指南——怎么把一个复杂任务拆成小块

有一次一个学员给我看他的流程:画布上有87个指令节点,从左边拖到右边要滚好几屏。鼠标滚轮都滚坏了。

“跑得通吗?”

“能跑,但每次改一个地方都要找半天。经常改错了,前面的也崩了。”

我说:“你这属于把大象塞进了冰箱。很大一个工程,但你忘了开门。”

安装与配置:流程设计的前置知识

写流程之前,先理清几个概念:

主流程:只有一个,是整套流程的入口。主流程只负责"调度",不负责具体执行。

子流程:可以有多个,每个负责一个具体任务。子流程内部写具体操作。

变量作用域:主流程的变量子流程看不见,子流程的变量主流程也看不见。数据只能通过参数传递。

理解这三个概念,流程规划就成功了一半。另一半是什么?是养成"先想后写"的习惯。

案例主线:电商数据日报

这是一个真实的业务场景:每天早上8点,自动采集淘宝、京东、拼多多三个平台的商品销量数据,汇总成一个Excel报表,发到管理者飞书上。

如果一上来就打开影刀开始拖指令,大概率会失败。正确做法是先画一张草图。

第一步:把任务写在纸上

不要急着打开影刀。拿张纸,把整个任务写成一句话:

“采集三个电商平台的数据,汇总成日报,发飞书。”

然后把这一句话拆成更小的步骤:

  1. 登录平台
  2. 采集数据
  3. 处理数据(清洗、汇总、生成报表)
  4. 发送通知

这就是"自顶向下"的拆解方法。从最高层的目标开始,一层一层往下拆。

拼多多店群自动化报活动上架!

我在公司培训新人时,让他们先画流程图再写代码。开始他们嫌麻烦,后来发现随便画两笔能省两小时调试时间。

变量与数据类型:设计好数据怎么流转

流程规划不只是拆步骤,还要设计数据怎么流转。

数据日报的数据流是这样的:

采集阶段输出的数据 -> 一张临时表(列表格式)
处理阶段读取临时表 -> 清洗汇总 -> 生成汇总表
发送阶段读取汇总表 -> 转成Markdown消息 -> 发飞书

每两个阶段之间的交接数据要定义清楚:

采集子流程输出:products_list(列表,每个元素是一个字典)

[{"platform":"淘宝","name":"蓝牙耳机","sales":1234,"date":"2025-06-26"},{"platform":"京东","name":"蓝牙耳机","sales":987,"date":"2025-06-26"}]

处理子流程输入:products_list,输出:summary_dict(字典)

{"total_sales":2221,"platforms":["淘宝","京东"],"top_product":"蓝牙耳机",![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6035ac58355e4da0b4acd727f0b0b470.png#pic_center)"report_date":"2025-06-26"}

网页自动化:采集子流程的设计

采集子流程是核心。三个平台的结构不同,但流程逻辑一样:

每个平台采集子流程内部:

  1. 打开平台网址
  2. 等待数据面板加载
  3. 循环提取每一行数据
  4. 存入列表变量
  5. 翻下一页
  6. 重复直到最后一页

关键指令:

  • 打开网页:打开数据平台的地址
  • 等待元素出现:等待数据表格加载完成
  • 获取相似元素:定位所有商品行
  • ForEach循环:逐行提取数据
  • 点击翻页按钮:CSS选择器button.next-page

如果平台需要登录,采集子流程开头调用"子流程_登录"就可以了。

XPath与CSS选择器:稳定的元素定位

采集数据最重要的就是元素定位要稳定。数据面板的表格结构一变化,整个流程就废了。

以淘宝数据为例,定位商品名称:

  • CSS选择器:.product-item .product-name
  • XPath://div[contains(@class,“product-item”)]//span[@class=“product-name”]

用contains做模糊匹配比精确匹配稳定。class名可能是"product-item active",精确匹配就找不到了。

我有个采集流程跑了半年没改过元素定位,就是因为我选的都是最通用的class名,不依赖会变的部分。

流程控制:用主流程串起一切

主流程只做"指挥",不做事。长这样:

步骤1:调用 子流程_登录(三个平台共用登录) 步骤2:调用 子流程_采集淘宝数据 -> 结果 -> taobao_data 步骤3:调用 子流程_采集京东数据 -> 结果 -> jd_data 步骤4:调用 子流程_采集拼多多数据 -> 结果 -> pdd_data 步骤5:调用 子流程_合并数据(传入三个数据集) -> 结果 -> all_data 步骤6:调用 子流程_生成日报(传入all_data) -> 结果 -> report_content 步骤7:调用 子流程_发送飞书通知(传入report_content)

主流程就是7个"调用子流程"节点。一眼就能看懂整个任务在做什么。

如果周二只需要采淘宝和京东,拼多多不用?删掉步骤4就行了,其他步骤不受影响。

这就是拆分子流程的最大好处:模块独立,想加就加,想删就删。

数据处理:合并与生成报表

合并子流程做的是简单的列表拼接:

all_data=taobao_data+jd_data+pdd_data

但如果数据量大,拼接前可以先对每个平台的数据做简单清洗:

  • 去重:同一个商品号不要出现两次
  • 格式化:日期统一用YYYY-MM-DD格式
  • 补全:某些字段缺失的给默认值

生成日报子流程是用处理后的数据创建Excel文件。创建Excel的步骤:

  1. 新建Excel文件
  2. 写入表头行(平台、商品名、销量、日期)
  3. 逐行写入数据
  4. 设置单元格格式(加粗表头、数字居右)
  5. 保存文件

进阶技能:流程的扩展性设计

好的流程规划要考虑以后会不会变。比如现在3个平台,以后可能加第4个、第5个。

设计技巧:主流程不要写死平台数量。用一个平台配置表替代:

TEMU店群矩阵自动化运营核价报活动

platforms=[{"name":"淘宝","url":"https://..."},{"name":"京东","url":"https://..."},{"name":"拼多多","url":"https://..."}]

主流程里用ForEach循环遍历platforms列表,动态调用子流程。加一个平台只需往配置里加一行,不需要动任何流程代码。

鼠标键盘与图像:日报的截图附件

生成的Excel报表,有时还需要一张数据趋势图。影刀可以截取Excel图表区域,保存为图片,附在飞书通知里。

用"Excel截图"指令:选择Excel中图表所在的区域,保存为png文件。

飞书机器人发送图片消息时,先上传图片到飞书服务器,获取image_key,再用image_key发送消息。

具体的飞书图片消息格式,home.linyan.cloud上有完整的调用示例。

系统联动:定时执行

日报是每天早上跑的,不需要手动触发。在影刀客户端配置定时任务:每天8点执行。

如果有多个步骤的依赖关系,比如数据采集必须在登录之后,生成日报必须在数据采集之后——这些都是流程内部的顺序,定时任务只管"几点开始跑"。

失败重试也配置一下:如果8点执行失败,10分钟后重试一次。重试3次后还失败,发告警。

工程化规范:流程的目录结构

项目文件夹按功能分层:

目录结构示例:

  • 主流程:日报总调度
  • 采集层:采集淘宝、采集京东、采集拼多多
  • 处理层:数据合并、数据清洗、生成报表
  • 通知层:发送飞书通知
  • 通用层:登录、翻页、截图

每个子流程文件名前缀代表它所属的层。同一个层的子流程放在一起,一目了然。

常见报错与解决

“采集的数据为空”:检查登录是否成功,网页数据是否正常加载。加一步"判断数据是否存在"的If判断,如果为空就跳过或告警。

“生成的Excel打不开”:保存Excel时文件路径指定的文件夹可能不存在。保存前加"新建文件夹"指令确保路径存在。

“飞书通知发送失败”:检查Webhook是否过期。飞书群的机器人如果被删除,Webhook就失效了。定期检查Webhook有效性。

#影刀RPA #RPA教程 #影刀新手教程 #流程规划 #模块设计 #数据日报 #RPA架构

作者:林焱