> 技术文档 > 自动预约 12306 火车票的全流程实战 —— 基于 Python 3 + Selenium/Playwright 的现代爬虫教程_python实现12306自动抢票

自动预约 12306 火车票的全流程实战 —— 基于 Python 3 + Selenium/Playwright 的现代爬虫教程_python实现12306自动抢票


1 · 项目背景与目标

每到春运 / 国庆 / 暑运, “一票难求” 的场景总会如期上演。尽管 12306 已上线「候补抢票」并开放人脸核验 App,小伙伴们仍希望掌握自动预约余票监控下单提交乃至一键支付的整套脚本流程。

本教程目标

  • 账号扫码登录 → Cookies/Token 本地持久化
  • 动态查询余票 + 正则过滤车次
  • 自动填充乘客信息、席别、日期
  • 抢票失败自动重试 / 候补提单
  • 支持 CLI、Web 面板、无人值守守护脚本

多端支持:Selenium + ChromeDriver(兼容 GUI 调试)或 Playwright + Chromium(无头 + asyncio)。

12306 的防爬策略、验证码形态和接口版本在近两年又升级了两次12306.cn;因此本文紧跟 2025 年最新前端 JS 混淆与接口节奏,参考了业界对 12306 协议的持续逆向 github