十一將至,你買到回家的火車票了嗎?如果沒有,你可以試着打開GitHub,在搜索欄鍵入12306的關鍵詞,我相信你會發現一個新大陸。沒錯,這裏有1572個搶票項目。它們大多用Python、JavaScript、Java寫成。其中,名爲 testerSunshine 12306的項目,標星甚至即將破萬。網友表示親測好用,再也不用買加速包了。
用 Python 搶票在技術圈已經屢見不鮮了。在更新日誌中,我們瞭解到,testerSunshine 12306的最早記錄是在2017年5月。最近一段時間,項目作者針對新添加的候補功能進行了較爲頻繁的更新。目前,它支持 Python 3.6-3.74 版本,已具備自動打碼、自動登陸、準點預售和撿漏、智能候補、郵件通知、 pushbear 通知等功能。
它的項目思路非常清晰,即便是沒有 Python 基礎的小白也可輕鬆操作。
依賴庫
- 驗證碼目前可以本地識別,需要下載模型,放於項目根目錄,全部代碼來源於此項目 傳送門,表示感謝。
- 項目依賴包查看 requirements.txt
- 安裝方法x:
1)root用戶(避免多Python環境產生問題):pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
2)非root用戶(避免安裝和運行時使用了不同環境): pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
項目使用說明
項目開始
- 服務器啓動:
1)修改配置文件
2)運行根目錄 sudo python run.py,即可開始
- 如果你的服務器安裝了docker與docker-compose, 那麼就可以通過 docker-compose 進行啓動, docker.sh 腳本對此進行了封裝,可以通過如下命令進行啓動
1)sudo ./docker.sh run # 創建一個鏡像並啓動容器,如果鏡像已經創建過了會直接啓動容器。
2)sudo ./docker.sh restart # 修改配置文件後,通過此名命令可重新加載容器運行
3)sudo ./docker.sh rm # 刪除容器
4)sudo ./docker.sh drun # 後臺運行容器
5)sudo ./docker.sh logs # 在後臺運行時,通過此命令查看運行的內容
注:針對沒有docker環境的同學提供了docker安裝腳本(centos7) - sudo ./docker_install_centos.sh
雖然項目作者表示,程序只是加速買票的過程,並不一定能買到票,但這種多手準備的操作方式仍能爲購票成功提升機率。