py12306 购票助手
傳送門?https://github.com/pjialin/py12306/
py12306 購(gòu)票助手
分布式,多賬號(hào),多任務(wù)購(gòu)票
前言
今年回家的票明顯要難買很多,早早就答應(yīng)了父母今年的票沒(méi)問(wèn)題,到現(xiàn)在一張票沒(méi)買到,雖然家里已經(jīng)訂了汽車票,讓我不用操心,但是想想他們一行還有小孩,心還是很傷的。 這段時(shí)間從 12306Bypass 到 testerSunshine 大佬寫的?12306,還是沒(méi)搶到票,索性就自己寫了一個(gè),希望也能幫助到更多人
Features
- ?多日期查詢余票
- ?自動(dòng)打碼下單
- ?用戶狀態(tài)恢復(fù)
- ?電話語(yǔ)音通知
- ?多賬號(hào)、多任務(wù)、多線程支持
- ?單個(gè)任務(wù)多站點(diǎn)查詢
- ?分布式運(yùn)行
- ?Docker 支持
- ?動(dòng)態(tài)修改配置文件
- ?郵件通知
- ?Web 管理頁(yè)面
- ?微信消息通知
使用
py12306 需要運(yùn)行在 python 3.6 以上版本(其它版本暫未測(cè)試)
1. 安裝依賴
git clone https://github.com/pjialin/py12306pip install -r requirements.txt2. 配置程序
cp env.py.example env.py自動(dòng)打碼
目前支持免費(fèi)打碼,和若快打碼
注:免費(fèi)打碼無(wú)法保證持續(xù)可用,如失效請(qǐng)手動(dòng)切換到若快平臺(tái),需要先到?http://www.ruokuai.com?注冊(cè)一個(gè)賬號(hào)后填寫到配置中
語(yǔ)音通知
語(yǔ)音驗(yàn)證碼使用的是阿里云 API 市場(chǎng)上的一個(gè)服務(wù)商,需要到?https://market.aliyun.com/products/57126001/cmapi019902.html購(gòu)買后將 appcode 填寫到配置中
3. 啟動(dòng)前測(cè)試
目前提供了一些簡(jiǎn)單的測(cè)試,包括用戶賬號(hào)檢測(cè),乘客信息檢測(cè),車站檢測(cè)等
開始測(cè)試 -t
python main.py -t測(cè)試通知消息 (語(yǔ)音, 郵件) -t -n
# 默認(rèn)不會(huì)進(jìn)行通知測(cè)試,要對(duì)通知進(jìn)行測(cè)試需要加上 -n 參數(shù) python main.py -t -n4. 運(yùn)行程序
python main.py參數(shù)列表
- -t 測(cè)試配置信息
- -t -n 測(cè)試配置信息以及通知消息
- -c 指定自定義配置文件位置
分布式集群
集群依賴于 redis,目前支持情況
- 單臺(tái)主節(jié)點(diǎn)多個(gè)子節(jié)點(diǎn)同時(shí)運(yùn)行
- 主節(jié)點(diǎn)宕機(jī)后自動(dòng)切換提升子節(jié)點(diǎn)為主節(jié)點(diǎn)
- 主節(jié)點(diǎn)恢復(fù)后自動(dòng)恢復(fù)為真實(shí)主節(jié)點(diǎn)
- 配置通過(guò)主節(jié)點(diǎn)同步到所有子節(jié)點(diǎn)
- 主節(jié)點(diǎn)配置修改后無(wú)需重啟子節(jié)點(diǎn),支持自動(dòng)更新
- 子節(jié)點(diǎn)消息實(shí)時(shí)同步到主節(jié)點(diǎn)
使用
將配置文件的中?CLUSTER_ENABLED?打開即開啟分布式
目前提供了一個(gè)單獨(dú)的子節(jié)點(diǎn)配置文件?env.slave.py.example?將文件修改為?env.slave.py, 通過(guò)?python main -c env.slave.py?即可快速啟動(dòng)
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.py2. 修改好配置后運(yùn)行
docker run -d -v $(pwd):/config -v py12306:/data pjialin/py12306當(dāng)前目錄會(huì)多一個(gè) 12306.log 的日志文件,?tail -f 12306.log
Web 管理頁(yè)面
目前支持用戶和任務(wù)以及實(shí)時(shí)日志查看,更多功能后續(xù)會(huì)不斷加入
使用
打開 Web 功能需要將配置中的?WEB_ENABLE?打開,啟動(dòng)程序后訪問(wèn)當(dāng)前主機(jī)地址 + 端口號(hào) (默認(rèn) 8008) 即可,如?http://127.0.0.1:8008
更新
- 19-01-10
- 支持分布式集群
- 19-01-11
- 配置文件支持動(dòng)態(tài)修改
- 19-01-12
- 新增免費(fèi)打碼
- 19-01-14
- 新增 Web 頁(yè)面支持
- 19-01-15
- 新增 釘釘通知
- 新增 Telegram 通知
- 新增 ServerChan 和 PushBear 微信推送
截圖
Web 管理頁(yè)面
?
下單成功
?
關(guān)于防封
目前查詢和登錄操作是分開的,查詢是不依賴用戶是否登錄,放在 A 云 T 云容易被限制 ip,建議在其它網(wǎng)絡(luò)環(huán)境下運(yùn)行
交流群?274781597
Thanks
- 感謝大佬?testerSunshine,借鑒了部分實(shí)現(xiàn)
- 感謝所有提供 pr 的大佬
轉(zhuǎn)自git
總結(jié)
以上是生活随笔為你收集整理的py12306 购票助手的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: qq企业邮箱 pop3服务器是什么意思,
- 下一篇: QQ2000 的聊天室刷屏机设计技术