過年回家搶不到票怎么辦?
如果你是一名程序猿,你可以試試用Python自己刷票。自己動手,豐衣足食!
GitHub 用戶 testerSunshine 創(chuàng)建了一個買火車票的項目「12306 購票小助手」,它可以加速買票的過程。
項目地址:
https://github.com/testerSunshine/12306
該項目自誕生以來,創(chuàng)建者一直在更新,及時解決用戶遇到的問題,更新日志中最近更新顯示「增加預售踩點查詢下單,經(jīng)測試,誤差在 0.004s」。下面我們來看該項目的具體細節(jié)。
思路
先來看一下該程序的思路圖:
執(zhí)行
該程序使用 Python 創(chuàng)建,支持版本為 2.7.10 - 2.7.15。
依賴
依賴庫包括:用來對付 12306「刺激」驗證碼的圖像識別工具(該 repo 中推薦使用若快);項目依賴包 requirements.txt。
按照如下命令安裝項目依賴包:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
項目使用說明
需要配置郵箱,可以配置可以不配置,配置郵箱的格式在 yaml 里面可以看到 ex
提交訂單驗證碼哪里依賴打碼兔,所以如果是訂票遇到驗證碼的時候,沒有打碼兔是過不了的,不推薦手動,手動太慢
配置 yaml 文件的時候,需注意空格和遵循 yaml 語法格式
使用幫助
測試郵箱是否可用
測試下單接口是否可用,有兩個下單接口,隨便用哪個都 ok
如果下載驗證碼過期或者下載失敗的問題,應該是 12306 封 ip 的策略,多重試幾次,12306 現(xiàn)在封服務器(阿里云和騰訊云)ip 比較嚴重,盡量不要放在服務器里面
項目開始
服務器啟動:
修改 config/ticket_config.yaml 文件,按照提示更改自己想要的信息
運行根目錄 sudo python run.py,即可開始
由于新增對時功能,請務必用 sudo,sudo,sudo 執(zhí)行,否則會報權(quán)限錯誤。windows 打開 ide 或者 cmd 請用管理員身份執(zhí)行 python run.py,不需要加 sudo
如果你的服務器安裝了 docker,那么就可以 docker 啟動
docker build -t dockerticket .
docker run dockerticket python run.py &
本來是可以直接 Dockerfile 啟動的,但不知道為什么啟動不了,如果有大佬看到問題所在,歡迎提出
目錄對應說明
agency - cdn 代理
config - 項目配置
damatuCode - 打碼兔接口
init - 項目主運行目錄
myException - 異常
myUrllib - urllib 庫
希望大家能夠在搶票的時候看到類似下圖這樣的好消息~
PS. 項目創(chuàng)建者說了,該項目不能用于商業(yè)用途哦~