搶票工具成了GitHub熱榜第一,最新支援候補搶票,Python跑起來 | 標星8400
車栗子 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
想要十一回家的小夥伴們,大概剛剛經歷了一波搶票大戰。
順便把一個
Python搶票工具
,送到了GitHub趨勢榜第一:
專案名很乾脆,就是“
12306
”,標星超過8。4k,來自名叫
文賢平
的程式設計師。
這很可能是全GitHub最德高望重的購票小助手了,
功能一直在更新
,且現已支援
Python 3.6
以上版本。
有些後起之秀,也是在它的基礎上開發出來,然後廣受歡迎:
標星4k的“
py12306
”便是其中之一,它支援分散式搶票。
如果你還有票要搶,試一下這些Python工具吧。已經有許多人類親測成功了:
△12306專案的使用者評價
△ py12306專案的使用者評價
以及,十一後面還有春運,可以提前做好準備活動嘛。
熱榜第一的搶票程式
文賢平/文先森 (testerSunshine) 的搶票小助手“12306”,雖然誕生在2018年初,但最近一次提交程式碼,是在今年
9月5日
,現在還十分新鮮。
這隻得力的小助手,思路清晰又緊湊:
從查詢餘票開始,到付款完成,最後獲取訂單號。一氣呵成,不怕人類手速太慢。
有了它,文先森去年就絲滑地搶到了回家的票。而後,便努力幫助搶票助手繼續進化。
到目前為止,文先森與一眾貢獻者,已經在專案裡提交了361次程式碼,實現的功能有這些:
從更新日誌看來,最近加入的重要功能是
候補訂單
。
所謂候補,就是在票賣完的情況下預先付款,等其他人退票之後自動補上,是我國2019年春運才出現的新機制。
但文先森也還不清楚,這項功能在搶票助手裡的需求是怎樣的,所以正在密集地嘗試和調整:
在實現新功能的同時,已有的功能也在不斷最佳化。
這個搶票工具越來越強大,GitHub標星數量比起年初的4k,也已經翻了一番。
隨著專案的成長,文先森在8月31日宣佈了一件重要的事:
放棄支援Python 2。7,只支援
3.6
以上版本。
具體的食用方法,可以從傳送門前往專案頁觀察。
如果,你在食用過程中遇到了障礙,
使用幫助
目錄裡也沒找到解答,除了發起Issue,還可以進群討論:
把失敗的log發到群裡,大佬說不定能幫你調出來。
不過,有了搶票助手,也不是一定買得到票。
所以,多試幾種工具也是好的,尤其是可以
同時進行多個任務
的那種:
分散式搶票助手
一位名叫pjialin的程式設計師,借鑑了文先森的部分程式碼實現,開發了一個
分散式
工具,名叫
py12306購票助手
。
就是說,一臺機器搶不到,可以讓許多硬體一起跑。
它還支援
多工
(多班列車) 、
多日期
、
多賬號
一起查。
另一個機智的功能是,同時觀察
多個始發站
和
到達站
的組合。
比如,北京出發的票沒有了,就跑去下一站上車;或者家門口買不到,就直接買到終點:願意妥協但限於手速的小夥伴,也能交給工具自動查看了。
專案作者說,試過文先森的演算法和bypass12306,未果,這才做出了自己的搶票工具。
用上這個新工具,他一下子搶到了好幾張票。
同樣是支援Python 3。6以上版本,這個專案現在也有4k標星了。
薪火承傳
2010年初,官方上線12306。從那時起,程式設計師就開始用自己的方法查詢餘票了:
△ 來自李凡希
後來,越來越多的程式設計師加入這個隊伍,他們的力量也越發強大,大到能讓GitHub垮掉。
2012年,一位叫做iFish的大佬開發的外掛,被各家瀏覽器的春節版本紛紛搭載,12306官方也引用了裡面的一個資源。
就是它,在1月15日小高峰來臨的時候,引發了著名的“
12306訂票助手拖垮GitHub
”事件。
原因是外掛的早期版本,用GitHub的Raw File服務作CDN,且如果返回403錯誤,就5秒重試一次,永久重試。
iFish大佬應該不會想到,巨大的訪問量導致Github受到DDOS攻擊,速度撲街。GitHub甚至想到找人聯絡12306官方,去除那個引用。
雖然,當年的事件過去了,但程式設計師對回家的渴望還在那裡,就會不斷孕育出新的搶票工具,拯救自己,拯救世界。
最後,祝小夥伴們都能順利回家。
12306專案傳送門:
https://
github。com/testerSunshi
ne/12306
py12306專案傳送門:
https://
github。com/pjialin/py12
306/
—
完
—
量子位 · QbitAI
վ‘ᴗ’ ի 追蹤AI技術和產品新動態
戳右上角「+關注」獲取最新資訊↗↗
如果喜歡,請分享or點贊吧~比心❤