1. 程式人生 > >50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

閱讀文字大概需要 6.6 分鐘。

又到了一年一度的搶票大戰,本來就辛苦勞累了一年,想著可以早點訂到票跟家裡人團聚。所以有挺多的人,寧願多花些錢去找黃牛買票。但今年各種搶票軟體的橫行,還有官方出的加速包,導致連黃牛都不敢保證能買到票。你無奈的只能一起加入搶票大軍。

從不花錢的低速,到中速、高速、極速、光速、VIP,6 種搶票速度,越快當然搶到的機率也就更高,但每升一極都需要你花 10 個加速包才能實現。

而加速包的獲取方式有兩種:1 直接花錢買,1 元 1 個價格,全套下來大概 50 元左右。2 是好友助力,每邀請一個好友幫你助力就能獲取 2 ~ 5 不等的加速包。

大部分人都是不願意花錢買加速的,所以你開始群發好友,轟炸微信群,朋友圈吆喝,掛 N 個搶票軟體,各種你能想到的手段,都嘗試一遍,但無一都失敗了。

今天我就給大家介紹一個開源的 Python 搶票程式,親測有效!我身邊已經有很多好友,通過這個程式搶到車票了。不僅免費開源,還非常有用。

12306 購票小助手

專案已經在 GitHub 上開源了,地址:

https://github.com/testerSunshine/12306

 

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

 

 

 

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

專案使用到的 Python 庫

接下來我們檢視這個專案都用到哪些 Python 庫。開啟 requirements.txt 檔案,這裡面把專案所用到的庫大致都寫了出來。

 

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

 

 

 

網路請求用到了經典的 requests 庫,而頁面解析用到了 bs4 和 beautifulsoup4。有人可能會問這兩個解析庫有什麼區別?bs4 是用在 python3 版本上的,而 beautifulsoup4 是用在 python2 版本上。我最開始學 beautifulsoup 的時候就被這個坑過。

Pillow:Pillow 是很經典的 Python 影象處理庫,可以大致猜測作者用這個庫來解決簡單驗證碼的問題。

PyYAML:YAML 是一種直觀的能夠被電腦識別的的資料序列化格式,容易被人類閱讀,並且容易和指令碼語言互動。YAML 類似於 XML,但是語法比 XML 簡單得多。PyYAML 是 YAML 的 Python 實現,可以用於引數化 Pytho n物件,用來當做配置檔案。

Six:眾所周知 Python 2 和 Python 3 版本的分裂給 Python 開發者們帶來了很大的煩惱,為了使程式碼同時相容兩個版本,往往要增加大量的程式碼。 於是 Six 出現了。正如它的介紹所說,它是一個專門用來相容 Python 2 和 Python 3 的庫。它解決了諸如 urllib 的部分方法不相容, str 和 bytes 型別不相容等“知名”問題。

到這裡就可以看出作者這個程式是考慮到 Python 不同版本之間的相容性問題的,簡直業界良心。

wrapacache:一個基於 Python 裝飾器 Decorators 的方法快取系統,用於快取 Python 方法的輸出值,可以支援複雜資料型別,可以快取到 Redis 中、Python dict、LUR 演算法儲存中。

ntplib:這個庫是用來在 window 上同步校準當地時間的。

安裝使用

 

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

 

 

 

上圖在 GitHub 倉庫中都有寫到。我這裡就簡單的講下,首先你需要註冊「若快」的打碼平臺,為了可以讓程式自動打碼。隨後安裝程式依賴包,安裝方法上面已經寫到了。

最後程式有一個很重要的檔案叫「ticket_config.yaml」

 

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

 

 

 

所有購買車票的資訊都是在這個檔案裡配置的,比如車票時間,12306 賬號密碼,乘車人資訊,通知郵箱等等,作者在檔案中都有詳細的註釋。

 

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

 

 

 

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

執行 run.py 檔案即可,親測有效!

 

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

 

 

 

 

50 個加速包都搶不到車票,還不如這個 Python 搶票神器!

 

 

考慮到有些同學上不了 GitHub 我已把所有檔案都放在後臺了,加群:700341555即可獲取!