閱讀文本大概需要 6.6 分鐘。
又到了一年一度的搶票大戰(zhàn)薄腻,本來就辛苦勞累了一年收捣,想著可以早點訂到票跟家里人團聚届案。所以有挺多的人,寧愿多花些錢去找黃牛買票罢艾。但今年各種搶票軟件的橫行楣颠,還有官方出的加速包尽纽,導(dǎo)致連黃牛都不敢保證能買到票。你無奈的只能一起加入搶票大軍童漩。
從不花錢的低速弄贿,到中速、高速矫膨、極速差凹、光速、VIP侧馅,6 種搶票速度危尿,越快當(dāng)然搶到的幾率也就更高,但每升一極都需要你花 10 個加速包才能實現(xiàn)馁痴。
而加速包的獲取方式有兩種:1 直接花錢買谊娇,1 元 1 個價格,全套下來大概 50 元左右罗晕。2 是好友助力济欢,每邀請一個好友幫你助力就能獲取 2 ~ 5 不等的加速包。
大部分人都是不愿意花錢買加速的小渊,所以你開始群發(fā)好友法褥,轟炸微信群,朋友圈吆喝酬屉,掛 N 個搶票軟件挖胃,各種你能想到的手段,都嘗試一遍梆惯,但無一都失敗了酱鸭。
今天我就給大家介紹一個開源的 Python 搶票程序,親測有效垛吗!我身邊已經(jīng)有很多好友凹髓,通過這個程序搶到車票了。不僅免費開源怯屉,還非常有用蔚舀。
12306 購票小助手
項目已經(jīng)在 GitHub 上開源了,地址:
https://github.com/testerSunshine/12306
作者也很用心的把程序的思路給畫了出來锨络,我們可以簡單的看一下赌躺。整個思路其實就是模擬一個正常人購票的方式,首先查詢下車票剩余的票數(shù)羡儿,如果有座位提交訂單礼患,出現(xiàn)驗證碼這識別驗證碼,隨后就循環(huán)點擊提交按鈕,這里作者就做了很多的條件判斷缅叠,比如出現(xiàn)異常則重新查詢悄泥,提交訂單失敗也重新查詢,直至獲取訂單成功肤粱。訂票成功之后還有一個通知機制弹囚,即發(fā)送到你的郵箱里。
項目使用到的 Python 庫
接下來我們查看這個項目都用到哪些 Python 庫领曼。打開 requirements.txt 文件鸥鹉,這里面把項目所用到的庫大致都寫了出來。
網(wǎng)絡(luò)請求用到了經(jīng)典的 requests 庫宋舷,而頁面解析用到了 bs4 和 beautifulsoup4。有人可能會問這兩個解析庫有什么區(qū)別?bs4 是用在 python3 版本上的,而 beautifulsoup4 是用在 python2 版本上。我最開始學(xué) beautifulsoup 的時候就被這個坑過。
Pillow:Pillow 是很經(jīng)典的 Python 圖像處理庫摆屯,可以大致猜測作者用這個庫來解決簡單驗證碼的問題虐骑。
PyYAML:YAML 是一種直觀的能夠被電腦識別的的數(shù)據(jù)序列化格式垂寥,容易被人類閱讀,并且容易和腳本語言交互。YAML 類似于 XML潭流,但是語法比 XML 簡單得多嗓奢。PyYAML 是 YAML 的 Python 實現(xiàn),可以用于參數(shù)化 Pytho n對象,用來當(dāng)做配置文件册赛。
Six:眾所周知 Python 2 和 Python 3 版本的分裂給 Python 開發(fā)者們帶來了很大的煩惱票堵,為了使代碼同時兼容兩個版本,往往要增加大量的代碼叫潦。 于是 Six 出現(xiàn)了短蜕。正如它的介紹所說氢架,它是一個專門用來兼容 Python 2 和 Python 3 的庫。它解決了諸如 urllib 的部分方法不兼容朋魔, str 和 bytes 類型不兼容等“知名”問題岖研。
到這里就可以看出作者這個程序是考慮到 Python 不同版本之間的兼容性問題的,簡直業(yè)界良心警检。
wrapacache****:一個基于 Python 裝飾器 Decorators 的方法緩存系統(tǒng)孙援,用于緩存 Python 方法的輸出值,可以支持復(fù)雜數(shù)據(jù)類型扇雕,可以緩存到 Redis 中拓售、Python dict、LUR 算法存儲中镶奉。
ntplib:這個庫是用來在 window 上同步校準當(dāng)?shù)貢r間的础淤。
安裝使用
上圖在 GitHub 倉庫中都有寫到。我這里就簡單的講下哨苛,首先你需要注冊「若快」的打碼平臺值骇,為了可以讓程序自動打碼。隨后安裝程序依賴包移国,安裝方法上面已經(jīng)寫到了吱瘩。
最后程序有一個很重要的文件叫「ticket_config.yaml」
所有購買車票的信息都是在這個文件里配置的,比如車票時間迹缀,12306 賬號密碼使碾,乘車人信息,通知郵箱等等祝懂,作者在文件中都有詳細的注釋票摇。
把這個配置文件按你的需求填寫完畢之后,大家就可以開始運行了砚蓬。
運行 run.py 文件即可矢门,親測有效!
考慮到有些同學(xué)上不了 GitHub 我已把所有文件都放在后臺了灰蛙,在公眾號「癡海」中祟剔,回復(fù)「12306」即可獲取。
****搶到票的同學(xué)摩梧,別忘了把文章分享給身邊需要的人物延!****