12306 抢票软件的安装与使用

前言

本教程主要介绍如何通过 Docker 安装和使用 TesterSunshine/12306 抢票软件,并配合使用本地的打码服务。

TesterSunshine/12306 抢票软件的功能

  • 自动打码
  • 自动登录
  • 准点预售和捡漏
  • 智能候补
  • 邮件通知
  • Server 酱通知

Docker 和 Docker-Compose 安装

依赖 Docker 版本为 18.09 及以上,Docker-Compose 版本为 1.23.2 及以上,具体安装步骤可参考站内以下教程:

TesterSunshine/12306 抢票软件安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 拉取源码
# git clone https://github.com/testerSunshine/12306.git

# 进入源码的根目录
# cd 12306

# 修改配置文件里的账号、出发城市、到达城市、抢票通知等信息(原配置文件里有详细的配置介绍,根据注释提示进行配置即可),若使用使用本地的打码服务,必须修改AUTO_CODE_TYPE为3,HOST改为"captcha:80"
# vim TickerConfig.py

# 拉取打码服务的Docker镜像
# docker-compose pull captcha

# 构建抢票服务的Docker镜像
# docker-compose build ticket

# 提示:若拉取或者构建Docker镜像耗时过长(网络下载慢),此时建议配置Docker使用代理或者更换Docker的镜像源

# 创建并启动打码服务和抢票服务的Docker容器(命令执行成功后会自动开始抢票)
# docker-compose up -d

# 查看容器的状态
# docker-compose ps

# 查看抢票服务的日志信息
# docker logs --follow ticket 或者 docker logs --follow ticket --tail 10

# 停止抢票
# docker-compose stop

# 开始抢票
# docker-compose start

TickerConfig.py 配置文件被更改后,需要重新构建抢票服务的 Docker 镜像,否则配置文件的更改不会生效,此时可执行以下步骤:

1
2
3
4
5
6
7
8
9
10
11
# 进入源码的根目录
# cd 12306

# 关闭并销毁容器
# docker-compose down

# 重新构建抢票服务的Docker镜像
# docker-compose build ticket

# 创建并启动打码服务和抢票服务的Docker容器(执行成功后会自动开始抢票)
# docker-compose up -d

抢票成功的日志信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
正在第355次查询  乘车日期: 2018-02-12  车次G4741,G2365,G1371,G1377,G1329 查询无票  代理设置 无  总耗时429ms
车次: G4741 始发车站: 上海 终点站: 邵阳 二等座:有
正在尝试提交订票...
尝试提交订单...
出票成功
排队成功, 当前余票还剩余: 359 张
正在使用自动识别验证码功能
验证码通过,正在提交订单
提交订单成功!
排队等待时间预计还剩 -12 ms
排队等待时间预计还剩 -6 ms
排队等待时间预计还剩 -7 ms
排队等待时间预计还剩 -4 ms
排队等待时间预计还剩 -4 ms
恭喜您订票成功,订单号为:EB52743573, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!

关于 IP 被屏蔽

若出现下载验证码过期或者下载验证码失败的问题,此时应该是触发了 12306 封 IP 的策略,建议多重试几次。12306 现在封服务器(阿里云和腾讯云)IP 比较严重,尽量不要在服务器环境下运行。

最后更新

2020 年春节前后,使用该抢票程序成功帮朋友抢到 7 张高铁票,运行环境是单台 Vultr 低配服务器(国外)和家用 PC 机(国内)