歡迎光臨
每天分享高質量文章

100行Python程式碼自動搶火車票!

今年你不妨自己寫一段程式碼來搶回家的火車票,是不是很Cool。

準備工具:

  • 12306網站使用者名稱和密碼

  • Python 2.7

  • chrome瀏覽器及下載chromedriver

  • 下載Python程式碼,位於:https://github.com/ppy2790/tickets

程式碼用的Python+Splinter開發,Splinter是一個使用Python開發的開源Web應用測試工具,它可以幫你實現自動瀏覽站點和與其進行互動。Splinter官網

http://splinter.readthedocs.io/en/latest/ 。Splinter執行的時候會自動開啟你指定的瀏覽器,訪問指定的URL。然後你所開發的模擬的任何行為,都會自動完成,你只需要坐在電腦面前,像看電影一樣看著螢幕上各種動作自動完成然後收集結果即可。

瞭解原理:

找到相應URL,找到控制元件模擬登入、查詢、訂票操作。關鍵是找到控制元件名稱,難點是起始地不是直接輸入的頁面值,需要在cookie中查出。

  • 12306查詢URL:

    https://kyfw.12306.cn/otn/leftTicket/init

  • 12306登入URL:

    https://kyfw.12306.cn/otn/login/init

  • 我的12306URL:

    https://kyfw.12306.cn/otn/index/initMy12306

  • 購票確認URL:

    https://kyfw.12306.cn/otn/confirmPassenger/initDc

Python程式碼開啟URL,找到控制元件填充值:

找到使用者名稱密碼控制元件名

找到起始地控制元件名

確定起始地的值,方法Chrome瀏覽器中的“檢查”功能(按F12),Network —> Cookies中找到:

cookie中起始地的值

複製起始地的cookie值,我把幾個常用的城市拷出來,放到了字典中:

查詢車票程式碼:

其實,你只需要執行程式碼:

當然,還需要手動點一下的還是萬惡的12306驗證碼,搶到票後確認支付就行啦。

搶票進行中

搶票成功!

作者:然學科技

來源:https://www.jianshu.com/p/a16b0b258c3b



————近期開班————

馬哥聯合BAT、豆瓣等一線網際網路Python開發達人,根據目前企業需求的Python開發人才進行了深度定製,加入了大量一線網際網路公司:大眾點評、餓了麼、騰訊等生產環境真是專案,課程由淺入深,從Python基礎到Python高階,讓你融匯貫通Python基礎理論,手把手教學讓你具備Python自動化開發需要的前端介面開發、Web框架、大監控系統、CMDB系統、認證堡壘機、自動化流程平臺六大實戰能力,讓你從0開始蛻變成Hold住年薪20萬的Python自動化開發人才

10期面授班:2018年03月05號(北京)

09期網路班:騰訊課堂隨到隨學網路

掃描二維碼領取學習資料

更多Python好文請點選【閱讀原文】哦

↓↓↓

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖