首先需要安裝最新的python:安裝步驟見:https://www.cnblogs.com/weven/p/7252917.html 其次下載python源碼: 鏈接:https://pan.baidu.com/s/1UZmMEjt5nc7clMtatgLwzA 提取碼:qatx 然後就開始以下步驟 ...
首先需要安裝最新的python:安裝步驟見:https://www.cnblogs.com/weven/p/7252917.html
其次下載python源碼:
鏈接:https://pan.baidu.com/s/1UZmMEjt5nc7clMtatgLwzA
提取碼:qatx
然後就開始以下步驟了:
以下是大神原話:
前言
今年回家的票明顯要難買很多,早早就答應了父母今年的票沒問題,到現在一張票沒買到,雖然家裡已經訂了汽車票,讓我不用操心,但是想想他們一行還有小孩,心還是很傷的。 這段時間從 12306Bypass 到 testerSunshine 大佬寫的 12306,還是沒買到票,索性就自己寫了一個,希望也能幫助到更多人
Features
- 多日期查詢餘票
- 自動打碼下單
- 用戶狀態恢復
- 電話語音通知
- 多賬號、多任務、多線程支持
- 單個任務多站點查詢
- 分散式運行
- Docker 支持
- 動態修改配置文件
- 郵件通知
- Web 管理頁面
- 微信消息通知
使用
py12306 需要運行在 python 3.6 以上版本(其它版本暫未測試)
1. 安裝依賴
git clone https://github.com/pjialin/py12306 pip install -r requirements.txt
(以上紅色欄位一段需要註意是的是直接在對應的文件目錄下執行,windoows的cmd下麵)
2. 配置程式
cp env.py.example env.py
上面是linux的,如果是windows需要把cp換成copy
上述執行後,產生env.py配置文件,具體內容在配置文件裡面查看。
自動打碼
目前支持免費打碼,和若快打碼
註:免費打碼無法保證持續可用,如失效請手動切換到若快平臺,需要先到 http://www.ruokuai.com 註冊一個賬號後填寫到配置中
語音通知
語音驗證碼使用的是阿裡雲 API 市場上的一個服務商,需要到 https://market.aliyun.com/products/56928004/cmapi026600.html購買後將 appcode 填寫到配置中
3. 啟動前測試
目前提供了一些簡單的測試,包括用戶賬號檢測,乘客信息檢測,車站檢測等
開始測試 -t
python main.py -t
測試通知消息 (語音, 郵件) -t -n
# 預設不會進行通知測試,要對通知進行測試需要加上 -n 參數
python main.py -t -n
4. 運行程式
python main.py
參數列表
- -t 測試配置信息
- -t -n 測試配置信息以及通知消息
- -c 指定自定義配置文件位置
分散式集群
集群依賴於 redis,目前支持情況
- 單台主節點多個子節點同時運行
- 主節點宕機後自動切換提升子節點為主節點
- 主節點恢復後自動恢復為真實主節點
- 配置通過主節點同步到所有子節點
- 主節點配置修改後無需重啟子節點,支持自動更新
- 子節點消息實時同步到主節點
使用
將配置文件的中 CLUSTER_ENABLED
打開即開啟分散式
目前提供了一個單獨的子節點配置文件 env.slave.py.example
將文件修改為 env.slave.py
, 通過 python main -c env.slave.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
Web 管理頁面
目前支持用戶和任務以及實時日誌查看,更多功能後續會不斷加入
使用
打開 Web 功能需要將配置中的 WEB_ENABLE
打開,啟動程式後訪問當前主機地址 + 埠號 (預設 8008) 即可,如 http://127.0.0.1:8008
更新
- 19-01-10
- 支持分散式集群
- 19-01-11
- 配置文件支持動態修改
- 19-01-12
- 新增免費打碼
- 19-01-14
- 新增 Web 頁面支持
- 19-01-15
- 新增 釘釘通知
- 新增 Telegram 通知
- 新增 ServerChan 和 PushBear 微信推送
- 19-01-18
- 新增 CDN 查詢
截圖
Web 管理頁面
下單成功
關於防封
目前查詢和登錄操作是分開的,查詢是不依賴用戶是否登錄,放在 A 雲 T 雲容易被限制 ip,建議在其它網路環境下運行
交流群 274781597
Thanks
- 感謝大佬 testerSunshine,借鑒了部分實現
- 感謝所有提供 pr 的大佬