趣玩Python——如何幫女朋友快速搶票

僱個城管打天下發表於2019-01-11

又到了半年一度的考試季,對於那些翻山越嶺外出求學的莘莘學子們,相比於各顯神通的考試,更緊張的莫過於買一張回家的車票,相信很多群最近都被下面這樣的圖佔領了。

趣玩Python——如何幫女朋友快速搶票
趣玩Python——如何幫女朋友快速搶票

如今,隨著12306的抗壓能力越來越強,各種第三方搶票軟體也是層出不窮,什麼智行火車,攜程旅遊,就連官方都推出的了加速服務,這就導致了大量黃牛都開始感嘆:這年頭的生意不好做咯!

而且現在各家的搶票方式都是八仙過海,各顯神通,這家讓你消費買加速包,那家讓你瘋狂推銷,以至於才出現了上述加速小程式的瘋狂炸群(微信小程式恐成最大贏家)。

作為一個苦逼的學生黨,花錢買加速包不大可能,畢竟買加速包的錢都快趕上半張火車票了;讓我瘋狂用小程式炸群也不大可能,畢竟關係到自己的社交信譽,而且現如今的群成員各個都是大爺,不發紅包不點加速。

那麼難道就沒有一種geek風的搶票軟體嗎?

12306購票小助手

想找各種騷操作的軟體,第一想法自然是去最大的同性交友網站啊,無意中發現了一個名為12306購票小助手的專案,試了下竟然真的搶到了票,專案已經開源,地址?github.com/testerSunsh…

思路圖

思路圖

作者也很用心的把程式的思路給畫了出來,我們可以簡單的看一下。整個思路其實就是模擬一個正常人購票的方式,首先查詢下車票剩餘的票數,如果有座位提交訂單,出現驗證碼這識別驗證碼,隨後就迴圈點選提交按鈕,這裡作者就做了很多的條件判斷,比如出現異常則重新查詢,提交訂單失敗也重新查詢,直至獲取訂單成功。訂票成功之後還有一個通知機制,即傳送到你的郵箱裡。

使用

說了這麼多,應該如何使用呢?詳細的可以參考作者的README,這裡我用最簡單的方式講述下需要注意的地方以及如何使用用這個購票小助手搶到票:

注意事項

  1. python版本為2.7.10-2.7.15
  2. 推薦使用MacOS/Linux
  3. 使用時一定要以root使用者執行

準備工作

  1. 註冊若快影象識別www.ruokuai.com/client/inde…,記住使用者名稱和密碼,然後充值1塊錢兌換2500快豆即可,該步驟是為識別驗證碼做準備。
  2. 下載專案:執行git clone https://github.com/testerSunshine/12306.git將程式碼下載至本地。
  3. 安裝Python2.7:此處推薦使用pyenv管理你的python版本,Mac使用者可以參考《mac下利用pyenv管理多個版本的python》安裝制定版本的python版本,這裡我使用的是python 2.7.15
  4. 安裝依賴庫:命令列進入專案根目錄後,執行sudo python2 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

專案配置

配置檔案

上圖中的**ticket_config.yaml**是執行整個專案最重要的配置檔案,所有的購票資訊都在該檔案中,比如車票時間,12306 賬號密碼,乘車人資訊,通知郵箱等等,檔案中都有詳細的註釋,根據要求進行更改即可。

趣玩Python——如何幫女朋友快速搶票

把這個配置檔案按你的需求填寫完畢之後,就可以開始執行了。

開始搶票

命令列進入專案根目錄後,執行sudo python run.py即可開始搶票了。

趣玩Python——如何幫女朋友快速搶票

如果搶到票了,就會輸出類似下面的log:

車次: DXXX 始發車站: 南京南 終點站: 合肥南 二等座: 16
設定乘車人數為: 1
查詢到有餘票,嘗試提交訂單
車票提交通過,正在嘗試排隊
排隊成功, 你排在: 0位, 當前餘票還剩餘: 16 張
不需要驗證碼
提交訂單成功!
排隊等待時間預計還剩 -4 ms
恭喜您訂票成功,訂單號為:XXXXXX, 請立即開啟瀏覽器登入12306,訪問‘未完成訂單’,在30分鐘內完成支付!
複製程式碼

然後再登入12306的官方網站,訪問‘未完成訂單’即可看到你的購票資訊了。

趣玩Python——如何幫女朋友快速搶票

最後祝願大家都能搶到回家的票!

相關文章