買票回家難?軟件加速包也無用?看我用python輕鬆搶票回家!

如果你對自己手速和市面上的各種 “加速包” 都沒什麼信心的話,不妨試試用程序員的手段搶票?

況且,[12306 官方宣佈屏蔽了一大批付費搶票軟件],這也意味着你即使給這些軟件付了會員費,也依舊搶不到票。

所以只能回到最初的手動搶票?No!No!No!

GitHub 上有兩個 “年經” 項目,每到春運前一段時間,就會定時定點的登頂熱榜,助力一代又一代程序員和姿勢豐富的非程序員們搶票回家。

那麼,這兩個項目究竟怎麼用?好不好用?

和手動搶票、第三方軟件搶票比起來優勢是否明顯?

安裝使用過程中,會不會遇到不可名狀的 bug?

今天爲大家一一橫評。

霸佔熱榜的兩個項目

排在 GitHub 熱榜第 1 的項目名字簡單粗暴,就直接叫 12306,已經有 21300 星,來自 ID 爲 testerSunshine 的作者。

testerSunshine 的 12306 項目可以自動登錄用戶賬戶,能卡點搶票,也能撿漏候補,搶到票後會通過郵件進行通知。

排在熱榜第 2 位的,叫做 py12306,目前已有 8300 星,今年初就已經非常火了。

我該選哪個搶票軟件

那麼整體來看,這兩款開源軟件,哪個更好用呢?

py12306 從去年開始就已經被大家廣泛使用,其優點是設置比較簡潔,甚至還有圖形界面。但是它在驗證碼登錄過程中容易出現下載失敗的情況,如果把打碼接口從 free 換成 “若快” 平臺,還需要充值。

如果你對運行代碼一無所知,建議使用 py12306.

testerSunshine 的 12306 插件設置比較複雜,自動獲取 cookie 經常失敗,因此需要手動填寫,這一點比不上 py12306;但是它自帶了開發者的 12306 圖片識別模型,我們可以在本地完成圖片識別碼的登錄過程。

從實際使用效果來看,我們更推薦 testerSunshine 的 12306,目前它在 GitHub 上的高人氣,也反映的用戶們的選擇。

測評細節 & 使用教程

兩個搶票插件的關鍵都在配置文件的修改:testerSunshine/12306 的關鍵在於 TickerConfig.py,而 py12306 的關鍵在於 env.py。

熱榜第一:12306

我們先開始測試現在趨勢榜第一的 12306,先將項目複製到本地:

 

再安裝依賴項,爲了避免多 python 環境產生問題,建議以 root 用戶方式安裝:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

下面到了整個過程最關鍵的環節,配置 TickerConfig.py 文件,這一步將決定你的成敗!非常重要!

看到配置文件裏一長串字符,你是不是覺得很頭疼呢?我們經過測試,找到了其中的幾個關鍵點:

1、如果你沒有搶到票,寄希望於其他人退票後撿漏,令 TICKET_TYPE = 2,否則設置爲 1;

2、STATION_TRAINS可以填入一串你想要搶的車次,比如北京到合肥方向,你想購買 G267、G29 次列車,就設置爲 STATION_TRAINS = [“G267”, “G29”],中間用逗號隔開,不填寫等於搶當日全部車次;

3、STATION_DATES填入你出發的日期,這一步不難;STATION 和到達站 TO_STATION 不必精確到具體的站,只需填入城市,除非你想從特定站點出發;

5、乘車人填入你 12306 賬號中常用聯繫人的姓名,比如 TICKET_PEOPLES = [“張三”],如果沒有,需要登錄 12306 手動添加;

6、填入你的 12306 賬戶名和密碼;

7、如果不需要郵箱和 Server 醬提醒,請把 EMAIL_CONF 和 SERVER_CHAN_CONF 的第一項都設置爲 False;

8、開放搶票時間根據自己車次填入,可以提前幾秒,比如下午一點開發搶票,則填入 OPEN_TIME = “12:29:57” ;

9、cookie 設置這一步尤爲關鍵,經過我們實測,COOKIE_TYPE 設置爲 1 或 2 都有些問題,建議設置爲 3;

10、上一步設置爲 3 以後,還需要手動設置後面的兩個參數 RAIL_EXPIRATION和RAIL_DEVICEID。

如何找到這兩個參數?先用 Chrome 瀏覽器打開 12306.cn,點擊網站地址左邊的 “鎖形” 圖標:再點擊下發的 Cookie

接着會出現一組 Cookie,選擇來自 12306.cn 的 Cookie:

看到 RAIL_EXPIRATION和RAIL_DEVICEID兩個參數,點擊它,將內容裏的一串字符複製到配置文件中。

需要注意的是 RAIL_DEVICEID 參數很長,可能顯示不全,請完整複製。

至此,準備工作已全部完成,啓動前請先篩選 cdn,這點很重要!

python3 run.py c

接着啓動服務:

python3 run.py r

接着它會提出登錄成功,並列出當日所有相關車次信息,然後開始搶票:

搶票成功後,這個軟件不能幫你完成支付,你還需要在手機或者電腦上登錄 12306 網站,在 30 分鐘內完成支付動作,否則你辛辛苦苦搶的票就沒了。

熱榜第二:py12306

py12306 的安裝方式與前者類似:

然後修改配置文件,現更改後綴名

cp env.py.example env.py

默認配置文件中需要修改的選項有:

1、你的 12306 賬戶和密碼;

2、查詢任務 QUERY_JOBS 中的各項參數,包括出發日期 left_dates、出發站 left 和到達站 arrive、乘客姓名 members、坐席 seats、車次 train_numbers;

接着運行程序:

python3 main.py

如果你不善於使用命令行模式,還可以使用圖形界面觀察搶票任務。

很多小夥伴在學習Python的過程中往往因爲沒有資料或者沒人指導從而導致自己不想學下去了,因此我特意準備了大量的PDF書籍、視頻教程,都免費送給大家!不管你是零基礎還是有基礎都可以獲取到自己相對應的學習禮包!包括Python軟件工具和2019最新入門到實戰教程,(https://url.cn/59RWE1Z)複製到瀏覽器打開!

將配置中的 WEB_ENABLE 打開,啓動程序後訪問當前主機地址 + 端口號 (默認 8008) 即可,然後在瀏覽器中輸入 http://127.0.0.1:8008。

現在,就可以讓程序幫你搶票啦。

不過,搶票軟件並非萬能,巧 coder 難爲無票之炊,除了技術,你可能還需要一點點運氣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章