影刀RPA进阶教程_流程日志系统搭建关键节点与错误截图
2026/6/11 10:17:07 网站建设 项目流程

影刀RPA进阶教程:流程日志系统的搭建——关键节点日志、错误截图与运行报告

流程跑完打开Excel发现数据只有一半,你不知道是第几页崩的、什么原因崩的、崩溃时页面长什么样。

日志系统就是解决这个问题的。它回答三个问题:什么时候崩的?在哪崩的?崩的时候长什么样?


一、日志系统的三个层次

层次作用实现方式
关键节点日志记录流程运行到哪一步、关键变量值"输出日志"指令
错误截图异常发生时自动保存页面截图Catch块 + "截图保存"指令
运行报告流程结束后输出一份汇总Python代码指令生成报告

三个层次叠加,线上排查从"盲猜"变成"看一眼日志就知道问题在哪"。


二、关键节点日志

在哪里加日志

拼多多店群自动化上架方案

不要每条指令都加,只在"里程碑"位置加:

# === 日志插入点 ===输出日志("========== 流程开始 ==========")输出日志("搜索关键词:连衣裙")输出日志("目标页数:10页")输出日志("输出路径:D:\数据.xlsx")# 每个子流程前后输出日志("→ 开始搜索商品...")调用子流程("B_搜索商品")输出日志("← 搜索完成")输出日志("→ 开始采集列表...")调用子流程("C_列表采集")输出日志("← 采集完成,共采集"+str(总条数)+"条")# 翻页时记录输出日志("翻到第"+str(当前页)+"页,当前页采集"+str(当前页条数)+"条")# 关键判断判断元素是否存在("下一页按钮")输出日志("下一页是否存在:"+str(元素是否存在))# 异常捕获尝试捕获(Try):采集操作()捕获异常(Catch):输出日志("!!! 错误:"+错误信息)输出日志("!!! 发生在第"+str(当前页)+"页,第"+str(当前序号)+"条")输出日志("========== 流程结束 ==========")

三、日志的格式规范

日志不能随便写,要保证事后看能快速定位。

推荐格式:

[时间] [级别] 模块名 - 具体信息

在影刀里用这种方式实现:

# 用当前时间()函数获取时间戳输出日志("["+当前时间()+"] [INFO] 采集模块 - 第"+str(页码)+"页采集完成,共"+str(条数)+"条")# 错误日志输出日志("["+当前时间()+"] [ERROR] 采集模块 - 第"+str(页码)+"页:找不到商品列表元素")

实际运行时日志输出样例:

[2026-06-09 14:30:01] [INFO] 主流程 - 流程启动,搜索词:连衣裙 [2026-06-09 14:30:03] [INFO] 搜索模块 - 搜索完成 [2026-06-09 14:30:05] [INFO] 采集模块 - 第1页采集完成,共20条 [2026-06-09 14:30:07] [INFO] 采集模块 - 第2页采集完成,共20条 [2026-06-09 14:30:09] [ERROR] 采集模块 - 第3页找不到下一页按钮,可能是最后一页 [2026-06-09 14:30:10] [INFO] 清洗模块 - 清洗完成,原始40条→有效38条 [2026-06-09 14:30:11] [INFO] 主流程 - 流程结束,成功采集38条数据

一眼就看出:第3页翻页停了,可能是到了最后一页,不是bug。


四、错误截图——崩溃时留下现场

Catch块里除了输出日志,再加一步截图。这样排查时不用复现现场,看截图就知道页面当时长什么样。

# === 带截图的异常处理 ===尝试捕获(Try):获取相似元素列表("商品卡片列表")->卡片列表 遍历采集...捕获异常(Catch 任意异常):时间戳=当前时间()截图文件名="D:\\日志\\异常截图_"+时间戳+".png"输出日志("[ERROR] 捕获异常:"+错误信息)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/904324a706d541afa33f488c411d21e8.png#pic_center)截图保存(截图文件名)# 继续还是停止?如果 是致命错误:输出日志("[FATAL] 流程终止")终止流程 否则:输出日志("[WARN] 跳过当前页,继续下一页")

截图保存到固定的日志目录,按日期分类:

D:\影刀日志\ ├── 2026-06-09\ │ ├── 正常运行.log │ ├── 异常截图_143005_第3页.png │ └── 异常截图_150120_验证码.png ├── 2026-06-10\ ...

TEMU店群如何管理运营?

五、运行报告——流程结束后的汇总

最后一步,用Python代码汇总整个流程的运行结果。

# === 运行报告(Python代码指令) ===importdatetime now=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")报告=f""" ======================================== 影刀RPA流程运行报告 ======================================== 流程名称:拼多多商品搜索采集 执行时间:{now}---------------------------------------- 搜索关键词:连衣裙 目标页数:10页 ---------------------------------------- 实际采集页数:{总页数}页 采集商品数:{总条数}条 清洗后有效数:{有效条数}条 异常次数:{异常次数}次 ---------------------------------------- 异常详情:{异常详情文本}======================================== """# 写入日志文件importos log_dir=r"D:\影刀日志"os.makedirs(log_dir,exist_ok=True)log_file=os.path.join(log_dir,f"运行报告_{now.replace(':','-')}.txt")withopen(log_file,'w',encoding='utf-8')asf:f.write(报告)print(报告)

六、日志不要存太多——自动清理

日志文件不清理的话,三个月能堆几个G。

在流程末尾加一步自动清理:

# 清理7天前的日志importosimporttime log_dir=r"D:\影刀日志"now=time.time()seven_days_ago=now-7*24*3600forfolderinos.listdir(log_dir):folder_path=os.path.join(log_dir,folder)ifos.path.isdir(folder_path):folder_time=os.path.getmtime(folder_path)iffolder_time<seven_days_ago:importshutil shutil.rmtree(folder_path)print(f"已清理过期日志:{folder}")

七、速查:日志系统要覆盖的关键点

位置记录内容指令
流程启动参数(搜索词、页数、输出路径)输出日志
每个子流程前后进入/退出 + 耗时或结果条数输出日志
每次翻页页码、本页条数输出日志
每次条件判断判断结果(True/False)输出日志
Catch块错误信息、页码、序号输出日志 + 截图保存
流程结束汇总报告Python代码

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询