如果你同时做拼多多、淘宝、抖音三个平台,每天早上第一件事是什么?登录三个后台,分别下载昨天的数据,打开三个Excel,手动汇总到一个表里,发给老板。这一套操作下来,少说半小时。
我现在用影刀做这件事:每天早上8点,三个平台的数据自动采集、自动汇总成一张表、自动发到飞书群。打开手机就能看,再也不用开电脑了。
这篇文章完整拆解这套系统——不是教你做一个“通用的”汇总流程,而是把拼多多、淘宝、抖音三个平台串起来的完整方案。
一、整体架构设计
这套系统的核心逻辑很简单:各平台各自采集 → 统一清洗格式 → 合并汇总 → 推送通知。
我把整个流程拆成6个子流程:
A_Main(主流程-调度器)
├─ B01_采集_拼多多
├─ B02_采集_淘宝

├─ B03_采集_抖音
├─ C01_清洗_统一格式
├─ D01_合并_生成汇总表
└─ E01_推送_飞书通知
设计思路:每个平台独立采集,互不影响。哪个平台挂了只影响它自己,其他平台照常跑。清洗和合并独立出来,方便以后加新平台。
二、数据格式统一:用字典做“翻译层”
三个平台的数据字段名不一样——拼多多叫“商品标题”,淘宝叫“商品名称”,抖音叫“视频标题”。在合并之前,必须先把它们转成统一格式。
我在采集子流程里直接把数据转成统一格式的字典:
# 统一数据格式
{
"platform": "拼多多", # 平台名称
"product_name": "连衣裙", # 商品/视频名称

"sales": 5200, # 销售数量(统一为数字)
"amount": 665600.0, # 销售金额(统一为浮点数)
"date": "2026-06-29" # 日期(统一格式)
}
每个平台的采集子流程,最后都输出这种格式的列表。这样C_清洗子流程拿到的是三种来源但结构完全一样的数据,合并逻辑只需要写一遍。
三、拼多多数据采集(B01)
拼多多采集的是商家后台的数据,需要登录。
登录方式:用独立的User Data目录保存登录态,每天第一次跑的时候检测登录态是否有效,失效则触发重新登录。
采集路径:数据中心 → 昨日数据 → 商品明细列表。
# 捕获元素:拼多多商家后台数据中心菜单
//span[contains(text(),'数据中心')]
# 捕获元素:商品数据行
//div[@class='data-table']//tr
# 子元素:商品名称(基于行内相对路径)
.//td[1]/span
# 子元素:订单数
.//td[2]/span

# 子元素:支付金额
.//td[3]/span
采集逻辑:
打开拼多多商家后台 → 检测登录态(失效则重新登录)→ 点击数据中心 → 点击“昨日” → 等待表格加载 →
获取相似元素列表(商品数据行) → 循环遍历每行 → 提取商品名/订单数/金额 →
组装统一格式字典 → 追加到列表
数据清洗点:
- 金额:
¥12,345.67→12345.67 - 订单数:
1,234→1234 - 商品名去除首尾空格和换行
四、淘宝数据采集(B02)
淘宝采集的是“生意参谋”或“千牛”后台的商品数据。
# 捕获元素:千牛后台商品分析菜单
//span[contains(text(),'商品分析')]
# 捕获元素:数据行
//div[@class='table']//tr

# 子元素:商品名称
.//td[1]//a
# 子元素:支付金额
.//td[2]//span
# 子元素:支付件数
.//td[3]//span
采集逻辑和拼多多基本一样,区别在于:
- 登录方式:淘宝支持扫码登录,用User Data目录保存更稳定
- 日期筛选:点击“昨日”后数据加载较慢,等待时间设长一些(10秒)
- 金额字段:淘宝有时会显示“--”表示无数据,需要处理为0
特殊处理:淘宝商品数据可能分页,需要翻页采集。最多采5页。
# 处理淘宝的“--”空值
amount_raw = row[1] or "0"
if amount_raw == "--":
amount = 0.0
else:
amount = float(amount_raw.replace(",", ""))
五、抖音数据采集(B03)
抖音数据来源是抖音电商后台(抖店),同样需要登录。
# 捕获元素:抖店数据菜单
//span[contains(text(),'数据')]
# 捕获元素:商品列表行
//div[@class='goods-list']//tr
# 子元素:商品名称
.//td[1]//div[@class='name']
# 子元素:支付金额
.//td[2]//span
# 子元素:支付件数
.//td[3]//span
抖音的特殊坑:抖店的class名经常带随机哈希,需要用contains()匹配。
采集范围:抖店后台默认只显示最近7天,需要手动点击“昨日”筛选。
社区版用户注意:三个平台分别登录会消耗不少时长,建议用User Data目录保存登录态,每天第一次跑的时候检测一下,已登录就直接跳过登录步骤。
六、数据清洗与汇总(C01 + D01)
C01_清洗_统一格式
从三个平台采集回来的数据已经是统一格式的字典列表。C子流程做三件事:
- 去重:按
platform + product_name去重(防止三个平台有重复商品,避免同一个商品被重复计算) - 日期统一:确保所有数据的日期字段都是
YYYY-MM-DD格式 - 汇总计算:计算总销售额、总订单数、各平台占比
# 影刀Python代码 - 数据汇总计算
# 输入变量:all_data(三个平台采集数据的合并列表)
# 输出变量:summary(汇总结果字典)
# all_data 格式:[{"platform":"拼多多","product_name":"连衣裙","sales":5200,"amount":665600.0,"date":"2026-06-29"}, ...]
# 按平台分组汇总
summary_by_platform = {}
for item in all_data:
platform = item["platform"]
if platform not in summary_by_platform:
summary_by_platform[platform] = {"sales": 0, "amount": 0.0}
summary_by_platform[platform]["sales"] += item["sales"]
summary_by_platform[platform]["amount"] += item["amount"]
# 计算总销售额
total_amount = sum([item["amount"] for item in all_data])
total_sales = sum([item["sales"] for item in all_data])
summary = {
"total_amount": total_amount,
"total_sales": total_sales,
"by_platform": summary_by_platform,
"record_count": len(all_data)
}
print(summary)
D01_合并_生成汇总表
把清洗后的数据写入Excel,生成一张包含“平台汇总”和“商品明细”两个Sheet的报表。
Sheet1:平台汇总
| 平台 | 销售额 | 订单数 | 占比 |
|---|---|---|---|
| 拼多多 | ¥665,600 | 5,200 | 45% |
| 淘宝 | ¥532,800 | 3,800 | 36% |
| 抖音 | ¥281,600 | 2,100 | 19% |
Sheet2:商品明细
| 平台 | 商品名称 | 销售额 | 订单数 |
|---|---|---|---|
| 拼多多 | 连衣裙 | ¥665,600 | 5,200 |
| 淘宝 | T恤 | ¥532,800 | 3,800 |
| 抖音 | 运动鞋 | ¥281,600 | 2,100 |
七、飞书推送(E01)
报表生成后,自动发送到飞书群。
消息内容(飞书消息卡片格式):
📊 多平台销售日报 - 2026-06-29
💰 总销售额:¥1,480,000
📦 总订单数:11,100 单
🏷️ 分平台数据:
• 拼多多:¥665,600(45%)
• 淘宝:¥532,800(36%)
• 抖音:¥281,600(19%)
📎 报表附件已上传
实现方式:
- 用“连接飞书多维表格”连接报表所在的多维表格
- 用“批量添加记录”把汇总数据写入多维表格的“日报”Sheet
- 用“飞书群通知”发消息卡片
容易踩坑:飞书消息卡片的变量名和影刀传递的变量名必须完全一致。建议在飞书消息卡片搭建工具里先做好模板,再复制到影刀里。
八、定时执行与异常处理
定时配置
创业版以上:影刀计划任务 → 每天早上8:00执行。
社区版:Windows任务计划 + 批处理脚本,每天早上8:00触发。
异常处理
每个平台的采集子流程独立包Try-Catch:
Try(拼多多采集):
→ 执行采集
Catch:
→ 输出日志("拼多多采集失败:" + %Error%)
→ 该平台数据 = [](空列表)
→ 继续执行淘宝采集
Try结束
这样一个平台挂了不影响其他平台。最终汇总时,失败平台的数据为空,报表里显示“采集失败”或“无数据”。
全局超时保护:主流程外层再包一层Try-Catch,如果整体运行超过15分钟,强制终止并发送告警通知。
九、完整主流程代码
A_Main(主流程)
├─ 【初始化】
│ ├─ 设置变量:all_data = []
│ ├─ 设置变量:错误平台列表 = []
│ └─ 设置变量:开始时间 = 当前时间
│
├─ 【采集拼多多】
│ ├─ Try:
│ │ └─ 调用子流程 B01_采集_拼多多 → 拼多多数据
│ │ └─ 追加到 all_data
│ ├─ Catch:
│ │ └─ 错误平台列表.append("拼多多")
│ └─ Try结束
│
├─ 【采集淘宝】
│ ├─ Try:
│ │ └─ 调用子流程 B02_采集_淘宝 → 淘宝数据
│ │ └─ 追加到 all_data
│ ├─ Catch:
│ │ └─ 错误平台列表.append("淘宝")
│ └─ Try结束
│
├─ 【采集抖音】
│ ├─ Try:
│ │ └─ 调用子流程 B03_采集_抖音 → 抖音数据
│ │ └─ 追加到 all_data
│ ├─ Catch:
│ │ └─ 错误平台列表.append("抖音")
│ └─ Try结束
│
├─ 【数据清洗与汇总】
│ ├─ 如果 all_data 为空:
│ │ └─ 发送告警通知("所有平台采集失败,请检查")
│ │ └─ 终止流程
│ └─ 调用子流程 C01_清洗_统一格式(all_data) → 汇总数据
│
├─ 【生成报表】
│ └─ 调用子流程 D01_合并_生成汇总表(汇总数据) → 报表路径
│
├─ 【推送通知】
│ ├─ 计算总耗时
│ └─ 调用子流程 E01_推送_飞书通知(汇总数据, 报表路径, 错误平台列表, 总耗时)
│
└─ 【结束日志】
└─ 输出日志("多平台汇总完成,共{总数}条数据,耗时{总耗时}秒")
常见问题/易错速查
-
某个平台采集失败导致整个流程中断 → 每个平台的采集子流程独立包Try-Catch,失败不影响其他平台。
-
三个平台数据格式不统一,合并报错 → 采集时直接转成统一格式的字典,合并逻辑只写一遍。
-
登录态每天失效,重新登录耗时 → 用User Data目录保存登录态,流程开始时检测,已登录直接跳过。
-
Excel报表太大打不开 → 日报只保留最近30天数据,超过30天的归档到另一个文件。
-
飞书消息卡片的变量不生效 → 卡片模板里的变量名和影刀传递的变量名必须完全一致。每次添加变量后重新发版。
-
社区版30分钟不够跑三个平台 → 每个平台采集时间控制在5分钟以内,三个平台加上清洗和推送,总时长15-20分钟。如果还不够,分批跑——早上先跑拼多多和淘宝,中午再跑抖音。
推荐资源
- 影刀官方帮助中心搜索“飞书消息卡片”
- 影刀官方社区搜“多平台数据汇总”有完整案例
- 飞书消息卡片搭建工具(飞书官方)
- B站“小可耐教你学影刀RPA”有日报系统的实操视频
#影刀RPA #RPA自动化 #多平台汇总 #数据对账 #飞书联动 #电商自动化
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
