買到回家的票了嗎?用Python刷票,還不快來試試!
項目地址:https://github.com/testerSunshine/12306
又是一年春運高潮來臨,搶票回家成了老大難題。除了 12306 官網(wǎng)和官方 APP,各種第三方搶票軟件也是層出不窮。就算朋友圈沒被搶票小程序刷屏,聊天群也被刷了吧?
然而,春運的火爆,光靠這些小程序還是難以滿足大家的要求。小編***天搶票時,看著放票的瞬間,所有票種都變成紅色時就明白了這個道理(哭)……機器之心小編們的日常問好都由「你吃了嗎?」變成「你搶到了嗎?」== 搶票之難,難于上青天……
這一點,通過票圈的畫風,可見一斑↓↓
吐槽風:
跪求加速風:
不過!小編今天很開心,因為今天,我們看到了一個有趣的項目。在大家「嗷嗷待票」的關鍵時刻,這個智能搶火車票的項目可真是雪中送炭~
GitHub 用戶 testerSunshine 創(chuàng)建了一個買火車票的項目「12306 購票小助手」,它可以加速買票的過程。
該項目自誕生以來,創(chuàng)建者一直在更新,及時解決用戶遇到的問題,更新日志中最近更新顯示「增加預售踩點查詢下單,經(jīng)測試,誤差在 0.004s」。下面我們來看該項目的具體細節(jié)。
思路
先來看一下該程序的思路圖:
執(zhí)行
該程序使用 Python 創(chuàng)建,支持版本為 2.7.10 - 2.7.15。
1. 依賴
依賴庫包括:用來對付 12306「刺激」驗證碼的圖像識別工具(該 repo 中推薦使用若快);項目依賴包 requirements.txt。
按照如下命令安裝項目依賴包:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
2. 項目使用說明
- 需要配置郵箱,可以配置可以不配置,配置郵箱的格式在 yaml 里面可以看到 ex
- 提交訂單驗證碼哪里依賴打碼兔,所以如果是訂票遇到驗證碼的時候,沒有打碼兔是過不了的,不推薦手動,手動太慢
- 配置 yaml 文件的時候,需注意空格和遵循 yaml 語法格式
3. 使用幫助
- 測試郵箱是否可用
- 測試下單接口是否可用,有兩個下單接口,隨便用哪個都 ok
- 如果下載驗證碼過期或者下載失敗的問題,應該是 12306 封 ip 的策略,多重試幾次,12306 現(xiàn)在封服務器(阿里云和騰訊云)ip 比較嚴重,盡量不要放在服務器里面
4. 項目開始
(1)服務器啟動:
- 修改 config/ticket_config.yaml 文件,按照提示更改自己想要的信息
- 運行根目錄 sudo python run.py,即可開始
(2)由于新增對時功能,請務必用 sudo,sudo,sudo 執(zhí)行,否則會報權限錯誤。windows 打開 ide 或者 cmd 請用管理員身份執(zhí)行 python run.py,不需要加 sudo
(3)如果你的服務器安裝了 docker,那么就可以 docker 啟動
- docker build -t dockerticket .
- docker run dockerticket python run.py &
- 本來是可以直接 Dockerfile 啟動的,但不知道為什么啟動不了,如果有大佬看到問題所在,歡迎提出
5. 目錄對應說明
- agency - cdn 代理
- config - 項目配置
- damatuCode - 打碼兔接口
- init - 項目主運行目錄
- myException - 異常
- myUrllib - urllib 庫
希望大家能夠在搶票的時候看到類似下圖這樣的好消息~
PS. 項目創(chuàng)建者說了,該項目不能用于商業(yè)用途哦~
PSS. 鑒于以前遇到過的情況,大家可小心點用別把程序整崩了喲~重點是,希望這個項目能夠給大家?guī)韱l(fā),各位碼農(nóng)們可以有樣學樣自己研究出程序就更好了喲~畢竟,授人以魚不如授人以漁。
【本文是51CTO專欄機構“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】