testerSunshine:這款開源 12306 智能刷票,訂票項目是基於 Python 語言編寫,可在 Windows 或者 Linux 操作系統下運行,其主要功能包括:自動登錄、搶准點預售車票、撿漏票、智能候補票、郵件通知等。
源碼附件:https://github.com/testerSunshine/12306
原理步驟如下:

實現這個搶票功能所需要安裝的基本軟件python,chromedriver(谷歌驅動,自動化驅動谷歌瀏覽器的一個驅動,python作為自動化操作谷歌的一個自動化程序):
1、首先在win10電腦或者服務器安裝python3.6-3.7.4版本的python,安裝時候記得點上自動更新到path環境變量下。可參考https://www.jb51.net/article/173502.htm
2、在win7安裝python2.7.9-2.7.15版本的python

3、這是谷歌版本與對應的chromedriver版本,查看谷歌版本可打開設置查看,可參考https://blog.csdn.net/BinGISer/article/details/88559532
4、在https://github.com/testerSunshine/12306下載源碼壓縮包,推薦放在桌面上

5、在cmd進入到這個文件夾里,下載這些依賴庫,等待十多分鍾左右:
cd C:\Users\xxxxe\Desktop\12306-master
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
6、配置信息文件
打開TickerConfig.py(推薦使用notepad++)
需注意兩個地方:
郵件的填寫內容,授權碼寫到password里,不是填qq密碼,可參考https://jingyan.baidu.com/article/90895e0f2af42664ec6b0b14.html

chromedriver(這個路徑最好不要有中文,我習慣將chromedriver放到谷歌程序同級目錄下)


如果路徑有帶中文的話,需要轉義符,故字符串前面應該加上r。
7、卸載tensorflow默認版本,安裝指定版本
進入cmd
pip uninstall tensorflow
pip3 install tensorflow==1.15.0rc -i https://pypi.tuna.tsinghua.edu.cn/simple/
8、運行程序
cd C:\Users\xxxxe\Desktop\12306-master
python run.py c (加載cdn)
python run.py t (測試郵件收到信息)
python run.py r (運行搶票程序)
9、如果做完以上操作,在python run.py r出現錯誤的話,可以根據報錯原因查看出錯地方,一般都是依賴庫,配置信息文件的問題。我總結一下我出錯的內容和解決方法:
1)看這個302報錯,很明顯用戶已經登錄進12306了,那就是代表依賴庫沒問題,問題出現在配置信息文件里的登陸后的操作,比如:輸入出發時間,出發地,目的地,車次信息等,可以在TickerConfig.py里檢查格式問題,注意:出發時間一定是(2020-01-09,年份必須四位數,月日必須兩位數)

2)如果檢查配置文件沒有錯誤,還是出現302錯誤,可以將https://www.12306.cn/index/+url拼接后,瀏覽器訪問。如果是網絡出錯,那么你現用的ip很有可能被封了,因為你的請求過密會容易被12306官網封掉,可以換其他wifi,改ip再重試。



這是能夠成功運行的界面。
以上為本人測試可用的12306源碼搶票腳本,很感謝分享到github的小伙伴,也希望看到我寫的文章的小伙伴,多多支持我,謝謝!
