還沒買到票?快試試這個Python開源工具,支持多任務搶票
買了加速包,好久也沒動靜。
能依靠的只有勤勞的雙手,但每天收到的都是12306送來的溫馨:
家門口沒票,就買去終點;北京沒票,就坐車去下一站;實在不行少買幾站上車再補……就算接受一切妥協,也還是失敗。
還好這個世界有Python,可以彌補人類手速的缺陷。
一位名叫pjialin的程序猿,試用眾多開源搶票助手 (包括testerSunshine出品,以及bypass12306) 無果,就自己寫了新的分布式算法,名曰py12306,剛剛發布不久。
它可以在一班火車上,觀察許多個出發站和到達站的排列組合,還有其他許多機智的功能。
有了它,程序猿開心地買到了好幾張票。而且,不止他一人親測成功:
有些小伙伴已在運行代碼,也有多人使用前先表示了資瓷,GitHub標星與日俱增:
多任務,多日期,多賬號
py12306購票助手,主要功能有這些:
多日期查詢余票· 自動打碼下單· 用戶狀態恢復· 電話語音通知· 多賬號多任務多線程支持· 單個任務多站點查詢· 分布式運行· Docker支持· 動態修改配置文件· 郵件通知
就像開頭提到的,它能在一個任務 (一班列車) 里,同時查看多個出發站,多個到達站;
并且支持多任務 (多班列車) 、多日期、多賬號一同查看。
總之,是人類難以企及的多線程。
另外,也支持自動下單和電話通知。
程序員說,這個擁有分布式集群的系統,每個節點都能處理任務,一個服務器掛了不影響其他的。所以,有條件的同學可以讓好幾臺服務器一起刷。
怎么用呢?
首先,程序猿提示,請選用python 3.6以上版本。
第一步,安裝依賴項:
第二步,配置程序:
· 自動打碼功能
支持免費打碼和若快打碼。免費打碼無法保證持續可用,失效需手動切換到若快平臺:
到ruokuai.com注冊一個賬號,再填到配置中。
· 語音通知功能
語音驗證碼來自阿里云API市場的一個服務商。
要到https://market.aliyun.com/products/57126001/cmapi019902.html 購買,再把appcode填到配置中。
第三步,啟動前測試:
py12306提供了一些簡單測試,比如用戶賬號檢測,乘客信息檢測,車站檢測等等。
· 開始測試配置信息 -t
· 測試通知消息 -t -n
第四步,運行程序:
然后,來觀摩一下程序猿搶到票的喜悅:
還沒買到票?快試試這個Python開源工具,支持多任務搶票
訂單提交成功,真是值得慶祝的瞬間,有接二連三的嘆號為證。
值此良辰,不免要向不幸沒搶到票的同學顯擺與沒買到票的小伙伴分享經驗。
pjialin把代碼放上GitHub,并對同樣寫過購票小助手的testerSunshine前輩表示了感謝,因為向前輩借鑒了部分實現。
另外,雖然今年的票買好了,溫柔的程序猿依然在繼續更新這個項目:
下一步,可能會給最后兩個方框也打上勾:
這里,遙祝pjialin好人一生平安,每年都能輕易買到回家的車票。
4000星的大前輩
方才提到,py12306吸取的經驗來自TesterSunshine (文賢平/文先森) 。
文先森的12306購票小助手在2018年年初誕生,如今已在搶票界德高望重:目前標星4000+,昨天一天上漲200+。
從余票查詢到下單完成,節奏緊張而明快:
文先森還在項目頁面掛了兩個二維碼,方便搶票成功的小伙伴們激動地打賞。
如果你還沒搶到票,也先觀賞一下成功的樣子:
哪個步驟失敗的話,還可以加群匯報一下,說不定大佬能幫你調出來:
祝你成功。
程序猿拯救世界
2010年,12306.cn含著祝福來到這個世界,于1月30日春運首日開通試運行。
而程序猿用自己的方式查詢余票的活動,在這之前就已經開始了 (只要下圖日期沒有bug) :
△ 來自名叫李凡希的江蘇少年
或許是職業敏感,讓程序猿群體早早開始擔心,12306體弱多病,會令人類買不到票。
只是,(上圖) 這個古老的項目已經404了。
而GitHub上依然健在的、最年長的訂票助手,可能是iFish在2012年1月9日發布的瀏覽器插件:
一個插件,拖垮GitHub
就是這只助手,在2013年1月15日訂票小高峰來臨之時,引發了著名的“12306訂票助手拖垮GitHub”事件。
當年,許多瀏覽器推出的春節版本都搭載了這個插件,連12306官方也引用了項目里的一個資源。
而插件的早期版本,用GitHub的Raw File服務作CDN,并且如果返回403錯誤,就5秒重試一次,永久重試。
巨大的訪問量,導致Github受到DDOS攻擊,速度撲街。GitHub甚至想找人聯系12306官方,讓對方去除這個引用。
iFish大佬,顯然低估了訂票助手的用戶數。
△ 我要回家了
一個程序猿想回家,可能沒有誰能阻攔。
畢竟,連GitHub都能拖垮,還怕買不到票?
還是有風險
那么,搶票應用會不會被河蟹?
新京報說,搶票軟件的存在確實會擾亂正常的市場購票秩序,但搶票軟件提供的服務屬于在技術上通過計算機的方式代替人工購票,性質和黃牛倒票不同。
目前為止,還沒有搶票軟件受到過行政處罰。
不過,相關法規說不定已經在路上了。
所以,有資源的好時節,大家一定要珍惜啊。
py12306購票小助手傳送門 (pjialin) :
https://github.com/pjialin/py12306/
12306購票小助手 (testerSunshine) :
https://github.com/testerSunshine/12306
12306.CN訂票助手 (iFish) :
https://github.com/iccfish/12306_ticket_helper
— 完 —