核心用法
12306-train-assistant 是基于官方 client.py 的命令行火车票服务工具,覆盖从查询到支付的全流程操作。核心能力包括:
查询类:余票查询(left-ticket)、中转换乘方案(transfer-ticket)、经停站时刻表(route)支持自动解析车次号;订单类:普通订票(book)、中转下单(transfer-book)、候补提交/取消/支付(candidate-*);账户类:密码/二维码登录、乘车人管理、订单查询与支付参数获取。
命令设计遵循"最小可用原则"——支持中文/拼音/三字码站名自动识别,相对日期(今天/明天)自动转换,车次号自动映射内部 train_no。所有查询类操作无需登录,订票/候补/支付类需先完成登录态检查。
显著优点
- 功能完整度高:覆盖12306官方90%以上的核心能力,包括较复杂的中转换乘推荐和候补排队机制
- CLI 友好:参数设计直观,支持
--dry-run预检避免误下单,--json结构化输出便于脚本集成 - 登录方式灵活:支持账号密码、短信验证、二维码三种登录路径,适应不同安全场景
- 中转换乘智能:自动推荐换乘方案,支持指定中转站,解决无直达票的出行难题
- 候补机制完善:支持候补排队状态实时监控、自动兑现后的支付参数获取
潜在缺点与局限性
- 风控敏感:高频查询或下单可能触发12306反爬机制,返回
error.html需人工等待 - 中转结果非穷尽:推荐方案依赖官方算法,不保证覆盖所有可行中转组合
- 支付链路受限:网页支付可能不可用,最终支付常需跳转官方App完成
- 无图形界面:纯CLI工具对非技术用户门槛较高
- 日期强依赖:部分查询必须提供未来日期,无法查询历史余票
适合人群
- 技术用户/开发者:需要自动化火车票查询或集成到个人工作流
- 高频出行者:熟悉12306规则,追求批量查询、候补监控效率
- 中转需求复杂:需要快速对比多方案、指定中转站的旅客
- 不适合:不熟悉命令行、需要可视化选座、追求一键支付完成的普通用户
常规风险
1. 账号安全:密码登录需妥善保管凭证,建议优先使用二维码登录
2. 误操作风险:--dry-run 虽可预检,但正式提交后订单生成即锁定席位,需30分钟内支付
3. 数据时效:余票信息存在秒级延迟,高峰期查询结果可能与实际可售状态偏差
4. 隐私泄露:乘车人信息、订单详情在本地处理,但接口通信仍存在被拦截理论风险
5. 服务可用性:依赖12306官方接口稳定性,节假日高峰期可能出现超时或限流