ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

影刀RPA新手教程:快递单号批量查询与物流异常拦截

影刀RPA新手教程:快递单号批量查询与物流异常拦截 影刀RPA新手教程快递单号批量查询与物流异常拦截月底盘点才发现有三个发出去十二天的订单压根没有物流更新记录客户早就投诉了售后赔的钱比货款还多。这事之后我做了一个用影刀RPA跑的物流看门流程每天自动查一遍最近发货订单的快递轨迹超过48小时没有揽收记录、超过72小时没有干线更新、显示派送失败或退回的全部自动拦截出来推给客服处理。这篇新手教程把这套流程从零讲到落地快递单号从哪来、轨迹去哪查、异常怎么定义、拦截之后怎么通知每一层都有现成指令可用。物流异常这种事早发现一小时就少一单纠纷这套流程上线后我们店物流相关投诉降了七成。新手直接照做就能搭出来全程不需要写超过十行代码影刀RPA的内置指令足够覆盖。认识影刀RPA先把环境搭起来没装过的从这步开始装过的直接翻到下一节。影刀官网下载客户端安装社区版免费新手学习阶段完全够用。安装时勾选浏览器插件后面要在浏览器里查轨迹页面没有插件网页自动化指令全部报错。编辑器三块区域认清楚左侧应用列表、中间流程画布、右侧指令面板指令靠搜索框找比如搜HTTP直接列出请求类指令。注册账号登录第一次运行官方示例流程感受一下拖指令、填参数、点运行的三板斧。物流查询是每天都要跑的任务对运行时长有要求等流程稳定后如果你跑的量大再评估要不要换无时长限制的版本。订单数据从哪来Excel清单是新手最稳的起点快递单号的来源有两种路线新手我强烈建议走第一条路线一导出Excel。发货后从打单软件或后台导出一张表列有订单号、快递单号、快递公司、发货时间流程读这张表。简单可控出问题好排查。路线二直接采集后台订单页。流程自动翻订单列表抓单号省了导表的人工但要多处理登录态、翻页、懒加载新手容易被劝退。我的实际做法是混合日常用路线二自动采集大促单量大时叠加路线一兜底。本文为了教学清晰主线按路线一讲采集部分放在网页自动化一节补充。数据读取用启动Excel打开表格读取区域把订单号、快递单号、快递公司、发货时间读进列表。这里有个数据类型细节Excel里的长单号很容易被识别成数字显示成科学计数法导表时把单号列设为文本格式读取后也用字符串类型处理不然查出来的轨迹全对不上。轨迹查询怎么实现HTTP请求优先网页采集兜底查轨迹有两条技术路线先讲优的用发送HTTP请求指令调快递查询接口把单号和快递公司编码拼进请求参数返回的是JSON文本转JSON后取轨迹数组和最新状态字段。整条链路不开浏览器、不怕页面改版、查500单也就一两分钟。接口可以选快递公司开放平台或聚合类查询服务按你单量选免费额度够用的。# 输入接口返回的JSON文本 response_text# 输出最新物流状态 latest_status轨迹条数 trace_countimportjson datajson.loads(response_text)# 文本转JSON对象tracesdata.get(data,{}).get(traces,[])# 取轨迹数组取不到给空列表trace_countlen(traces)latest_statustraces[-1][context]iftraceselse无轨迹# 最新一条描述第二条路线是网页采集打开快递查询网页填写输入框(web)填单号点击查询按钮等待元素出现后用获取元素文本(web)读轨迹区域。适合接口申请麻烦、单量又小的情况。网页路线的关键是等待查询结果是异步加载的不等待就抓抓到的永远是查询中。两条路线都验证可行后我把HTTP作为主流程、网页采集作为子流程备用接口服务偶尔抽风时切过去不耽误当天任务。元素定位四合一轨迹页面的元素处理网页采集路线里要用到定位这里把四种手段在这个场景的用法捋一遍也顺带帮新手建立选型意识。元素捕获点捕获元素按钮去查询结果页抓轨迹容器出现橙色边框时确认这是第一步模板。XPath结果页结构松散轨迹文本匹配用contains()写模糊定位最抗改。CSS选择器轨迹列表如果有规整的class优先CSS写法短好维护。正则表达式从预计送达2026-09-30这类文本里抽日期从已签收等状态词做模式匹配。# 捕获元素轨迹列表容器 //ul[classtrace-list] # 模糊匹配兜底方案页面改版后class失效时用 //*[contains(text(),签收) or contains(text(),派送)] # 捕获元素查询单号输入框 //input[placeholder请输入快递单号]我踩过的坑不同快递公司的查询页结构不一样圆通和韵达的结果页布局完全不同。后来我把每家公司的轨迹区域XPath分别捕获存成字典键是快递公司名值是对应的XPath查询时按公司取用。一个流程吃遍所有快递。流程控制异常判定的规则引擎轨迹拿到手核心逻辑就是异常判定。我用If嵌套搭了四条规则大家可以直接抄规则一轨迹条数为0且发货超过48小时判定疑似未揽收。规则二最新轨迹时间距今超过72小时判定物流停滞。规则三最新状态包含派送失败“退回”“破损关键词判定派送异常”优先级最高。规则四状态是已签收但系统里未完结标记待核对不进异常清单。实现结构循环Excel内容遍历订单清单循环体内先查轨迹然后用If逐条过规则命中的把订单号、单号、异常类型、最新轨迹描述写进异常清单。判定时间用的发货后多少小时要用当前时间减发货时间算出来日期时间处理在Python节点里几行搞定或者用影刀内置的日期指令。三条规则判定顺序有讲究先判规则三状态异常再判规则一和二时效异常因为退回件的时效数据没有意义先拦下来就不用再算时效了。网页自动化补充自动采单号的做法想让流程连导表都省掉可以直接去后台订单页采集。链路获取已打开的网页对象或打开网页进订单列表等待列表加载获取相似元素列表(web)抓整页订单号和物流状态判断下一页按钮是否存在决定翻页不存在按钮置灰就退出循环。懒加载页面要按官方文档的方法处理循环滚动加已抓列表去重滚动前后元素数量一致就到底了。采回来的数据和Excel清单合并去重后进入异常判定主流程两边单号做键去重用字典装最方便。弹窗处理提前做好后台公告弹窗、消息提醒都会挡操作每页操作前先判断弹窗关闭按钮是否存在存在就点掉。这套等待、判断、关闭的动作我封装成了子流程每处复用。鼠标键盘图像打印面单页面的意外用途物流场景里图像和键盘是配角但有两个用得上的地方键盘输入指令配合{BS 1}清除网页查询框的残留单号官方文档给的正是这个清空方案比全选删除稳。个别打单软件是客户端程序导出按钮抓不到元素用点击图像解决捕获图像按钮截图保存点击图像指令点它的中心支持9个锚点位置加偏移量微调。模拟点击遇到无响应的控件时把鼠标点击指令切到驱动模式再试驱动级点击对安全控件和特殊窗口更有效。图像方案的分辨率敏感问题依旧换环境先验证图像元素失效就重截。数据处理异常清单的落表与回填异常判定结果落到一张物流异常清单表里列订单号、快递单号、异常类型、最新轨迹、发现时间、处理状态。写入用在工作表的最后追加一行内容指令逐条追加。更要紧的是回填闭环客服处理完一单异常把处理状态从待处理改成已处理流程每天只把状态为待处理的行发提醒避免同一单天天轰炸群。改状态用Excel写入单元格指令按行号定位写。数据量大之后Excel读写会慢我单量超过日均三百后换成了SQLite连接、查询、批量插入、关闭四步用内置指令完成查询效率高一个量级。官方文档里数据库部分列了五个常见报错其中数据库文件被占用我踩过原因是有个进程没正常关闭连接好习惯是Finally块里永远放关闭连接的指令。进阶技能让查询更快的并发思路单量大的时候逐条发HTTP请求会慢进阶手段是并发用影刀RPA的Python节点配合第三方库批量请求或者把清单分片给多个子流程并行跑。跨模块调用函数、def封装查询逻辑这些Python协同能力在官方文档的进阶章节都有能写出上面的JSON解析代码就已经够用了。不会写代码的部分继续交给魔法指令描述把这段轨迹文本里最新的时间提取出来生成的指令链自己过一遍变量名就能用。OCR在这个场景用于偶尔的轨迹截图识别验证码识别应对查询接口的滑动验证都是锦上添花的功能。系统联动拦截了通知谁、怎么通知异常清单生成后通知链路这样搭每日汇总飞书群通知指令把当天新增异常按类型汇总成消息发到运营群配置需要飞书自建应用的App ID和App Secret在开发者后台企业自建应用详情页获取。紧急拦截规则三命中的派送异常单独触发用邮件发送指令直接发给客服负责人标题带订单号不进汇总等待。任务级告警挂上计划任务每天早上九点跑任务监控页面绑定告警邮箱流程本身崩了比如接口超时全失败也会收到提醒和业务异常通知是两层。定时任务配置界面选周期执行执行时间避开仓库打包高峰九点跑完正好赶在客服开工前把异常清单送到群里。工程化规范拆模块让流程能长大我的流程拆成五个子流程读取订单清单、单号轨迹查询、异常规则判定、异常清单写入、结果通知。子流程间参数传递用输入输出参数比如轨迹查询子流程输入单号和快递公司输出最新状态和轨迹条数。调试技巧上两招最实用断点加单步执行逐行看变量面板里每一步的值打印日志贯穿全流程每个订单处理完打一行订单号判定结果出问题翻日志就知道漏了哪单。命名按编号加动作010_读取清单流程图画布从上到下就是执行顺序。版本演进留了余地异常规则以后要加超区件虚假签收识别判定子流程里留了规则编号的字段加规则就是加一个If分支其他模块不动。易错速查表现象常见原因处理办法单号查询全失败单号被Excel转成数字单号列设文本格式字符串处理接口返回为空Token或Cookie过期Catch里识别401并触发重登或告警网页查询抓到查询中结果异步未加载完加等待元素出现再抓取同一单每天重复提醒处理状态没回填只提醒待处理状态的行翻页死循环最后一页按钮判断失效用disabled状态属性判断退出三条踩坑实录别信单号一定是对的我遇到过打单软件导出的表里混了已撤销订单的旧单号查询永远无轨迹全被误报成未揽收。后来加了一条规则发货时间为空或格式异常的行直接跳过不查。聚合接口有调用频率限制新手测试时别拿几百个单号压测先用10个单号把流程跑通再评估限流策略。异常消息里放订单号、单号、最新轨迹原文三样东西客服看到消息不用再查一遍系统处理效率差很多。延伸阅读与完整源码这套物流异常拦截流程的完整源码包括异常规则判定子流程和两家快递公司的轨迹定位XPath我放在代码仓库 home.linyan.cloud可以直接参考改造。接口换一家服务商只改HTTP请求子流程的参数部分判定规则原样能用。延伸学习推荐官方文档的HTTP请求和异常处理章节物流监控的难点一半在接口对接一半在规则设计。社区里搜快递物流能找到同行的实现思路我的规则判定就参考过一个社区案例的时效算法站在别人肩膀上迭代自己的版本比从零摸索快。#影刀RPA #RPA自动化 #快递查询 #物流异常 #电商客服作者林焱
返回列表