Python3實(shí)現(xiàn)搶火車(chē)票功能(上)

2018-09-15 16:08 更新
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專(zhuān)欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解

導(dǎo)語(yǔ)

又是一年春運(yùn),很多地方的火車(chē)/高鐵票依舊一票難求~~~于是,大家應(yīng)該明白我推出這個(gè)小項(xiàng)目的緣由了吧~~~

項(xiàng)目?jī)?nèi)容

(1)利用python實(shí)現(xiàn)火車(chē)/高鐵票查詢(xún)功能;

(2)利用python實(shí)現(xiàn)搶火車(chē)/高鐵票功能;

(3)對(duì)上述兩項(xiàng)基本功能進(jìn)行優(yōu)化;

(4)最后將兩項(xiàng)功能集成到一個(gè)Demo,供所有專(zhuān)業(yè)/非專(zhuān)業(yè)人士使用。

PS:

本項(xiàng)目不提供細(xì)致入微的教學(xué)(如有疑問(wèn)可后臺(tái)私信咨詢(xún)),僅講解主要思路、環(huán)境搭建、使用方式以及最終代碼(含詳細(xì)注釋?zhuān)?/p>

本期內(nèi)容

實(shí)現(xiàn)項(xiàng)目?jī)?nèi)容中的前兩項(xiàng)。

開(kāi)發(fā)工具

python版本:3.5.4

chromedriver_win32版本:2.3.4

chrome版本:65.0.3298.4

相關(guān)文件

百度網(wǎng)盤(pán)下載鏈接: https://pan.baidu.com/s/19jgSjtuxslE-UUK3kg3hpQ 

密碼: rjv6

項(xiàng)目?jī)?nèi)容1

相關(guān)模塊:

requests模塊、prettytable模塊以及python自帶的一些基本模塊。(相關(guān)模塊均使用pip安裝即可)

主要思路:

構(gòu)建相關(guān)的URL請(qǐng)求,并對(duì)返回的JSON數(shù)據(jù)進(jìn)行解析處理最后顯示即可。

其中值得一提的有:

(1)需要對(duì)特殊的URL發(fā)送請(qǐng)求來(lái)獲得輸入車(chē)站的字母代號(hào);

(2)車(chē)票余量查詢(xún)的URL有兩個(gè),任意某時(shí)刻兩個(gè)URL中僅有一個(gè)是有效的。

環(huán)境搭建:

安裝python3.5.4(添加到環(huán)境變量)并pip安裝相關(guān)第三方庫(kù)即可。

使用方式:


使用演示:


最終代碼:

見(jiàn)相關(guān)文件。

項(xiàng)目?jī)?nèi)容2

相關(guān)模塊:

splinter模塊以及python自帶的一些基本模塊。(相關(guān)模塊均使用pip安裝即可)

主要思路:

其實(shí)無(wú)非是利用splinter庫(kù),來(lái)實(shí)現(xiàn)模擬登陸、查詢(xún)、訂票等操作。換句話(huà)說(shuō)只要找到相關(guān)的控件名稱(chēng)即可,具體流程可以參考相關(guān)文件中的源代碼,我都做了詳細(xì)的注釋。

值得一提的有:

(1)出發(fā)地和目的地不是直接輸入的頁(yè)面值,需要在cookie中查出;

(2)驗(yàn)證碼需要手動(dòng)輸入。

環(huán)境搭建:

安裝python(添加到環(huán)境變量)并pip安裝相關(guān)的第三方庫(kù),最后將相關(guān)文件中提供的chromedriver.exe文件放在python安裝文件夾中的Scripts文件夾內(nèi)。

使用方式:

在下圖所示的代碼段中填寫(xiě)相關(guān)信息:


確認(rèn)無(wú)誤后在cmd中運(yùn)行即可。

其中cookie值查找方式如下圖:


使用演示:


輸入驗(yàn)證碼后其余操作均將自動(dòng)進(jìn)行:


搶到票之后我們需要手動(dòng)打開(kāi)12306官網(wǎng)或者官方APP在未完成訂單中進(jìn)行支付后購(gòu)票:


最終代碼:

見(jiàn)相關(guān)文件。

下期預(yù)告

主要完成項(xiàng)目?jī)?nèi)容3。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)