影刀RPA 12306余票监控实战:有票自动通知完整方案 影刀RPA 12306自动化实战抢票监控与信息自动填写作者林焱12306是每个人都可能用到的网站也是影刀自动化里经典的入门练习场景。这篇把实际可以做的几件事整理清楚。一、能做什么不能做什么能做的余票监控每隔几分钟自动查询指定车次/日期/席位是否有余票有票立刻通知自动填写乘客信息减少手动输入时间提高抢票成功率价格监控同一路线不同班次的票价对比不能做的建议不做的店群矩阵自动化突破运营极限全自动下单付款需要人脸识别/短信验证码自动化无法完成恶意刷票囤票违法行为严禁二、余票监控流程设计思路每隔3分钟查询一次查到有票立刻发通知然后停止或继续监控。实现步骤// 参数设置 出发地 北京 目的地 上海 出发日期 2024-07-01 目标车次列表 [G1, G3, G5] // 重点关注的车次空列表全部 目标席别 二等座 检查间隔 180 // 每3分钟检查一次单位秒 通知手机 获取全局变量(notify_phone) 循环 打开浏览器(https://kyfw.12306.cn/otn/leftTicket/init) 等待页面加载 // 输入查询条件 清空并输入(出发地输入框, 出发地) 等待候选项出现并点击第一个 清空并输入(目的地输入框, 目的地) 等待候选项出现并点击第一个 清空并输入(日期输入框, 出发日期) 点击(查询按钮) 等待(3000) // 采集余票信息 车次列表 获取元素集合(tr.aven, tr.odd) ForEach 行 in 车次列表 车次号 获取子元素文本(行, .number a) // 如果指定了目标车次只检查目标车次 如果 获取列表长度(目标车次列表) 0 且 非 列表包含(目标车次列表, 车次号) 继续 // 获取目标席别余票 余票 获取席别余票(行, 目标席别) 如果 余票 ! 且 余票 ! 无 且 余票 ! -- // 有票发通知 通知内容 有票了\n 车次 车次号 \n 日期 出发日期 \n 出发地 → 目的地 \n 目标席别 余票 余票 发送企微消息(通知内容) 记录日志(通知内容) // 发完通知可以选择继续监控或停止 关闭浏览器 等待(检查间隔 * 1000)三、获取指定席别余票不同席别在表格里对应不同列需要根据席别名确定列索引子流程获取席别余票(行, 席别名): 席别列映射 创建字典() 设置字典键值(席别列映射, 商务座, 1) 设置字典键值(席别列映射, 一等座, 3) 设置字典键值(席别列映射, 二等座, 4) 设置字典键值(席别列映射, 软卧, 6) 设置字典键值(席别列映射, 硬卧, 9) 设置字典键值(席别列映射, 硬座, 12) 如果 字典包含键(席别列映射, 席别名) 列索引 获取字典值(席别列映射, 席别名) 尝试 余票文本 获取子元素文本(行, td:nth-child( 列索引 )) 返回 去除首尾空格(余票文本) 捕获 返回 返回 四、加速信息填写买票时最耗时的是填写乘客信息。用影刀减少手动输入// 前提已在浏览器里登录12306已在候选人里保存好乘客 // 流程只负责自动勾选乘客 // 进入预订页面后 目标乘客名 张三 乘客列表 获取元素集合(.passenger_name) ForEach 乘客 in 乘客列表 姓名 获取元素文本(乘客) 如果 姓名 目标乘客名 点击(乘客) // 勾选该乘客 [video(video-7TjrOo4e-1783329674844)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)] 跳出循环 // 选择席别 点击(席别选项(目标席别)) // 提交订单需要人工确认付款 提示(请人工完成付款步骤) 等待用户确认五、多车次对比查询出行前对比同一路线不同时段的票价和余票// 早中晚三段 查询日期列表 [2024-07-01] 关心的车次 [G1, G3, G7, G11, G13] ForEach 日期 in 查询日期列表 查询余票(北京, 上海, 日期) 记录本页所有关心车次的 - 出发时间 - 到达时间 - 历时 - 二等座余票 - 一等座余票 - 价格结果写入 Excel一眼看出哪班车最合适。六、踩坑速查问题原因解决城市输入后候选项不出现等待时间不足增加等待时间改用等待元素出现车次表格元素定位失败12306页面结构复杂使用 XPath 精确定位监控超过15分钟后页面登录超时12306会话有时效每5次查询后重新打开页面余票显示为候补正常状态候补也是一种可报名的状态可以单独通知余票监控 通知推送是影刀流程里体感最直接的自动化价值场景之一。抢到票那一刻你就会觉得配置这个流程完全值得。作者林焱