距離農曆新年真的是越來越近了,大家在關心自己的年終獎之外,還有一件更重要的事情那就是:搶票、搶票、搶票。
搶票之難,難於上青天……為了能更快捷搶火車票,各種各樣的搶票軟件應需而生,但是,春運的火爆程度,單純的依靠搶票軟件還是難以滿足大家的需求,有時候我們不得不從黃牛手中去購買高價票。
最近一直收到朋友讓助力搶票的消息,就連朋友圈也已經被搶票小程序刷屏了!透露著滿滿的無奈感……
好想問問火車票、高鐵票、坐票、臥鋪……都去哪了啊,我站著回家也是可以的!
當大家都因搶不到票而愁雲籠罩時,程序員們已經開始利用Python搶票了。今天就給大家介紹一個開源的 Python 搶票程序,不僅免費開源,還非常有用。
先來看一下該程序的思路圖:
執行
該程序使用 Python 創建,支持版本為 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 現在封服務器(阿里雲和騰訊雲)ip 比較嚴重,儘量不要放在服務器裡面
項目開始
- 服務器啟動:
- 修改 config/ticket_config.yaml 文件,按照提示更改自己想要的信息
- 運行根目錄 sudo python run.py,即可開始
- 由於新增對時功能,請務必用 sudo,sudo,sudo 執行,否則會報權限錯誤。windows 打開 ide 或者 cmd 請用管理員身份執行 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 庫
希望大家能夠在搶票的時候看到類似下圖這樣的好消息~
同時還要給大家分享黑馬老師所講的關於Python搶票的學習教程,包含教學視頻,筆記資料等,詳細地講述瞭如何利用Python搶票的方法,快來領取吧!
春運回家搶票無憂
Python大牛帶你實現12306全自動搶票
獲取方式
請關注:黑馬程序員頭條號,評論轉發後臺回覆“12306”即可獲取
閱讀更多 黑馬程序員 的文章