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

閱讀文本大概須要 6.6 分鐘。python

又到了一年一度的搶票大戰,原本就辛苦勞累了一年,想着能夠早點訂到票跟家裏人團聚。因此有挺多的人,寧願多花些錢去找黃牛買票。但今年各類搶票軟件的橫行,還有官方出的加速包,致使連黃牛都不敢保證能買到票。你無奈的只能一塊兒加入搶票大軍。git

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

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

大部分人都是不肯意花錢買加速的,因此你開始羣發好友,轟炸微信羣,朋友圈吆喝,掛 N 個搶票軟件,各類你能想到的手段,都嘗試一遍,但無一都失敗了。編程

今天我就給你們介紹一個開源的 Python 搶票程序,親測有效!我身邊已經有不少好友,經過這個程序搶到車票了。不只免費開源,還很是有用。緩存

12306 購票小助手微信

項目已經在 GitHub 上開源了,地址:網絡

https://github.com/testerSuns...ui

做者也很用心的把程序的思路給畫了出來,咱們能夠簡單的看一下。整個思路其實就是模擬一個正常人購票的方式,首先查詢下車票剩餘的票數,若是有座位提交訂單,出現驗證碼這識別驗證碼,隨後就循環點擊提交按鈕,這裏做者就作了不少的條件判斷,好比出現異常則從新查詢,提交訂單失敗也從新查詢,直至獲取訂單成功。訂票成功以後還有一個通知機制,即發送到你的郵箱裏。url

項目使用到的 Python 庫

接下來咱們查看這個項目都用到哪些 Python 庫。打開 requirements.txt 文件,這裏面把項目所用到的庫大體都寫了出來。

網絡請求用到了經典的 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 上同步校準當地時間的。

安裝使用

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

最後程序有一個很重要的文件叫「ticket_config.yaml」

全部購買車票的信息都是在這個文件裏配置的,好比車票時間,12306 帳號密碼,乘車人信息,通知郵箱等等,做者在文件中都有詳細的註釋。

image

把這個配置文件按你的需求填寫完畢以後,你們就能夠開始運行了。

運行 run.py 文件便可,親測有效!

在公衆號「癡海」中,回覆「1024」便可 2019 最新編程資料獲取!

癡海

相關文章
相關標籤/搜索