
2019年接近尾聲,距離春節回家的日子越來越近,26日起,2020年除夕火車票正式開售,搶票大戰也進入白熱化階段。是否為某搶票 App 加速而煩惱,是否為車票“秒光而煩惱”。別慌,作為連“對象”都是 new
出來的程序員,這點小事怎么會難倒我們呢?今天我們介紹兩個 Github 最近漲 Stars 最猛的兩個項目:12306 購票小助手、py12306 購票助手,用好這兩個搶票工具,輕輕松松搶票,開開心心回家過年 。

一周內漲 5000+ stars ,技術流搶票可不是蓋的喔~
Github 原項目地址:12306 購票小助手、py12306 購票助手
如何搶票
py12306 購票助手
先看 py12306 搶票小助手如何使用。購票功能支持:多日期查詢余票、自動打碼下單、 用戶狀態恢復、電話語音通知、多賬號、多任務、多線程支持、單個任務多站點查詢、分布式運行、Docker 支持、動態修改配置文件、郵件通知、Web 管理頁面、微信消息通知。
先看搶票結果命令視圖:

輕松幾步安裝啟動:
- 如果沒有 python 環境建議先安裝 python 3.6 以上版本,然后安裝依賴
git clone https://github.com/pjialin/py12306pip install -r requirements.txt
- 配置程序
cp env.py.example env.py
- 啟動前測試
python main.py -t
- 運行程序
python main.py
也可以使用 docker 啟動服務
1. 將配置文件下載到本地
docker run --rm pjialin/py12306 cat /config/env.py > env.py
# 或
curl https://raw.githubusercontent.com/pjialin/py12306/master/env.docker.py.example -o env.py
2. 修改好配置后運行
docker run --rm --name py12306 -p 8008:8008 -d -v $(pwd):/config -v py12306:/data pjialin/py12306
當前目錄會多一個 12306.log 的日志文件, tail -f 12306.log
docker-compose 中使用
1. 復制配置文件
cp docker-compose.yml.example docker-compose.yml
2. 從 docker-compose 運行
在docker-compose.yml
所在的目錄使用命令
docker-compose up -d
啟動程序后訪問當前主機地址 + 端口號 (默認 8008)

下單成功

12306 購票小助手
功能支持:自動打碼、自動登錄、準點預售和撿漏、 智能候補、郵件通知、server醬通知。
先看看測試的搶票結果:

搶票步驟
第一步安裝依賴庫
具體依賴庫安裝可跳轉鏈接
第二步啟動服務
- 配置搶票的個人信息,包括車次、12306 賬號密碼、座位等信息

啟動前請先篩選cdn,這點很重要
python3 run.py c
- 啟動服務
python3 run.py r
- 如果你不知道如何操作,下面的命令可能會幫助你
python3 run.py -h——————————————————————————
sage: run.py [-h] operatepositional arguments:operate r: 運行搶票程序, c: 過濾cdn, t: 測試郵箱和server醬,server醬
- 如果你的服務器安裝了docker與docker-compose, 那么你可以忽略上面的所有步驟,直接按以下步驟操作,即可開始搶票:
- 開始搶票:
docker-compose up --build -d
- 停止搶票:
docker-compose down
- 查看搶票log:
docker logs --follow ticket
- 請確認你安裝的docker版本為18.09及以上:
docker -v
- 請確認你安裝的docker-compose版本為1.23.2及以上:
docker-compose -v
- 請根據自己需要修改好配置文件:
TickerConfig.py
- 請修改配置文件
TickerConfig.py
中的變量AUTO_CODE_TYPE
和HOST
,AUTO_CODE_TYPE
改為3
, HOST改為"captcha:80"
(這里很重要,這是本地打碼服務器的配置) - 前提條件:
- 請確認你安裝的docker版本為18.09及以上:
docker -v
- 請確認你安裝的docker-compose版本為1.23.2及以上:
docker-compose -v
- 請根據自己需要修改好配置文件:
TickerConfig.py
- 請修改配置文件
TickerConfig.py
中的變量AUTO_CODE_TYPE
和HOST
,AUTO_CODE_TYPE
改為3
, HOST改為"captcha:80"
(這里很重要,這是本地打碼服務器的配置)
- 請確認你安裝的docker版本為18.09及以上:
- 運行命令:
- 開始搶票:
docker-compose up --build -d
- 停止搶票:
docker-compose down
- 查看搶票log:
docker logs --follow ticket
- 開始搶票:
- 開始搶票:
搶票流程圖


兩個搶票工具分析總結:
兩個搶票工具的工作原理都是差不多的,實現思路都是模擬人工手動刷新查詢余票和搶票,只不過部署好之后就是工具調用 12306 的 API 接口幫我們自動執行查票和搶票的流程,解放雙手,再也不用在 12306 官網手動刷新搶票苦苦等待了,也不用為 APP 加速包而煩惱了。
