VibeTicket 智能购票助手(存在一定问题,先别下载)产品系统

我要开发同款
Lilias2026年08月05日
6阅读

技术信息

语言技术
Python
系统类型
Windows
行业分类
脚本插件
参考价格
2
演示地址

作品详情

行业场景

立项原因:节假日火车票供需严重失衡,12306 放票瞬间秒空,普通用户手动刷新几乎抢不到票。现有抢票软件多为灰产,绕验证码、绕风控、批量代抢,违法违规且有封号风险。本项目旨在提供一个合规的轻量自用购票工具——不绕验证码、不绕风控、单账号人类节奏,把重复刷新和填表的体力活交给脚本,验证码等人机交互环节仍由人工完成,让普通用户在合规前提下提升购票效率。
行业场景:个人出行购票、节假日返乡抢票、差旅自助购票。面向有技术基础但手速拼不过黄牛的普通用户,作为 12306 官方候补功能之外的辅助手段。

功能介绍

项目主要功能模块:
1) GUI 配置面板:可视化配置出发地、目的地、日期、目标车次、乘客、席别、刷新间隔,支持配置保存与加载。
2) 多策略选择器引擎(核心):为每个页面元素定义多条定位策略(ID/CSS/placeholder/role/text/xpath),按优先级降级尝试,应对 12306 页面频繁改版——改版后只需改 JSON 配置文件,无需改代码。
3) 探测模式:一键检测所有页面元素的选择器命中情况,精确定位哪些元素失效,便于快速修复。
4) 抢票核心:自动维持登录态(用户手动扫码登录)、定时刷新余票、命中目标车次有票时自动点预订、自动勾选乘客与席别、自动点提交订单。
5) 验证码人工处理:检测到验证码弹出时脚本暂停,由用户在浏览器手动完成,全程不碰验证码识别、不绕风控。
6) 多主题界面:5 套主题(清爽日间/极客暗夜/经典蓝/护眼绿/深邃黑)一键切换。
7) 子线程架构:抢票逻辑在子线程运行,界面不卡顿,日志经队列实时回传

项目实现

我负责全部任务:需求分析、架构设计、核心代码、GUI 实现、自检验证。
技术栈:Python 3.12 + Playwright(浏览器自动化,驱动系统自带 Edge,免下载 190MB Chromium)+ CustomTkinter(现代 GUI 框架)+ 多策略选择器引擎 + JSON 外置配置。
架构:分层设计——GUI 层(app.py)/ 核心层(grabber_12306.py 抢票逻辑 + selector_engine.py 定位引擎)/ 配置层(selectors_12306.json 外置选择器)。抢票在 threading 子线程跑,日志经 queue 队列回传 GUI 主线程 after 刷新,界面不卡。
亮点:
1) 多策略降级定位引擎,应对 12306 频繁改版——这是核心创新,改版后改 JSON 不改代码;
2) 复用系统 Edge 免下载 Chromium,安装轻量;
3) 合规设计——验证码人工处理、不绕风控、单账号人类节奏刷新。
难点:
1) 12306 DOM 频繁变动,单一选择器易失效,需多策略降级 + 探测模式定位失效点;
2) Playwright sync API 有线程限制,需在子线程内完成所有浏览器操作;
3) GUI 主线程与抢票子线程通信需用队列解耦,避免跨线程操作控件报错。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论