有一段時間沒有使用Python了,前幾天經朋友提起一篇關於用Python實現搶火車票的文章,百度了實現搶火車票的技術細節,網上卻有不少資料,也不是新鮮的東西。在了解了一些技術手段,閱讀了一些大神的博文后,也嘗試實現了一下,代碼寫得粗糙,純當娛樂,本文在Windows系統下完成。需要提到的是,搶票過程中的驗證碼部分只能手動完成。
首先,我需要的工具和組件有:
- Chrome瀏覽器
- 瀏覽器驅動ChromeDriver
- Python 3.5
- Web應用測試工具Splinter
Chrome瀏覽器可自行下載,其瀏覽器驅動ChromeDriver可在以下鏈接找到:http://chromedriver.storage.googleapis.com/index.html?path=2.20/
在官網下載Python,選擇Windows x86 executable installer,安裝過程中會一同安裝IDLE、pip等等,可勾選選項添加Python為環境變量(在Windows cmd下運行Python,需要設置環境變量)。安裝完成后,執行:pip install splinter安裝Splinter即可。
基本的配置已完成,測試一下,cmd下運行Python,分別鍵入以下指令:
這個時候大家可能會遇到一些 情況
chromedriver.exe進程 會經常關閉
解決辦法 :Chrome 版本第一點 52.XX.XX就可以 然后 去找對應版本的 chromedriver
- 1、下載ChromeDriver驅動包(下載地址: http://chromedriver.storage.googleapis.com/index.htmlpath=2.7/)
注意閱讀note.txt下載與自己所使用瀏覽器一致版本的驅動包。
還有遇到環境變量的問題 這里大家可以直接 把 chromedriver.exe 復制到 Python安裝目錄下 Scripts 一份 和 C:\Windows\System32 下一份
親測
再試一下上邊的代碼 測試一下
附上 github代碼 https://github.com/stay-youbg/python12306.git
這里的cookie值 可以 打開選票口 按F12 點擊 查看 cookie