查詢神器的地址是:
大家好,我是Vincent, 在美國讀書,因為擔心疫情,所以本來計劃這個秋季學期回國呆著(後來因為中美形勢不敢回了,怕回去回不來了),所以很早之前就開始研究回國機票。期間一直在關注各種渠道的航班信息,尤其是美卡指南和北美票帝。
我剛開始查票的時候就突然發現因為新冠疫情,平時常用的訂票工具都不管用了,要訂到能飛的五個一航班就要按照各種渠道收集來的排班表一個一個的搜符合五個一的星期+航司的組合,真的非常累,看排班表看的眼花。後來我就想如果能把排班表全部寫到代碼里,然後自動化的運行,就不需要每次對著表一個一個查了。剛好又是暑假,不是很忙,就連夜用python寫了個程序,通過按照跟五個一航班排班表一致的指定的日期+航司的組合來搜機票,避免像google flights那樣搜出來很多不能飛的機票(無息貸款票),而且可以做到直接搜一個日期區間內的所有餘票。
剛開始只有北美的航線,但是當時還是七月,北美航線余票很少,甚至十月都沒票了,就考慮轉機,加入了歐洲和日韓的航線。一開始只是個很簡單的python爬蟲程序,後來想著幫助更多的人,尤其是很多同學沒有python基礎,光配置環境就要折騰到懷疑人生,於是我就製作了一個很簡陋的網站,把python程序集成在伺服器端,讓大家只需要簡單的輸入日期區間和區域就可以直接等待搜索結果了。之後因為大家的需求陸續加入了全球其他地區的搜索功能,現在已經覆蓋了全球所有有直飛航班回國的區域,無論你是身處世界的哪一個角落,都不應該被遺忘。後來還加入了反向的出國線路(中國-海外方向)查詢功能,拿到offer準備買機票的小夥伴再也不用抓瞎買票啦!後來因為需求上升,伺服器撐不住,還換了一個更好的伺服器。從網站剛開始上線就一直在指南的論壇里公測(這裡是論壇帖的鏈接,可以說是見證了這個查票工具的前世今生),非常感謝大家的支持和提供寶貴意見。之前之所以一直沒有大規模推廣,是因為舊版網站使用streamlit做的(搞ML的同學可能接觸過,是一個很簡單的用來做機器學習數據分析和展示的框架),非常簡陋,而且不穩定,並不適合用於大規模訪問的生產環境。九月初接觸了JavaScript,之後就想用js來寫一個前後端分離的網站這樣可以提升使用效率,界面也能更加友好一些。於是就花了大概一個禮拜從零開始現學現賣搭建了一個基於vue.js的全新查詢網站,也就是大家現在看到的全新版本。
除了基本的余票查詢功能外,新版本還加入了一些實用功能:1.線路圖顯示,方便不認識機場代碼的同學了解航線;2.行李直掛協議的查詢,方便轉機的同學確認行李直掛事宜。目前網站的查詢資料庫每周會根據北美票帝發布的最新排班表更新。
其實總結一下這個查詢工具也就做了幾點微小的工作(誤):
- 將網上的復航信息和排班表整合到一個自動化搜索程序里,直接簡單暴力的告訴你能飛結果,再也不用對著排班表一個一個去查了
- 可以做到查一定時間段內所有機票,不需要再一天一天的去查了
- 整合行李直掛信息到搜索結果里,不用專門去查了
接下來我用一個簡單的例子來講一下大概的使用過程:
- 先在左側邊欄菜單里選擇查詢的方向(回國or出國)
- 在搜索欄選擇出發地區域(目前已經支持除南美和南極之外的所有大洲)
- 選擇搜索的起始和結束日期(這裡不是去程和返程的意思,而是設定一個日期區間,可以查日期區間內的所有符合現有排班表的余票,比如設置9.19和9.26就可以查詢9.19到9.26之間所有的該區域出發回國的余票)
- 進行人機驗證,之後點擊開始查票。
- 這裡以9.23-9.29的北美出發航班來講解一下搜索結果。搜索結果列表裡顯示具體的航班和日期,以及票價信息。「是否獎勵航班」一欄如果是checked就說明這個航班是獎勵航班(獎勵航班相對普通航班來說被取消的風險稍高,具體可以看指南里的回國路線文章里的說明),購票下面的「官」圖標是直接指向官網的搜索結果頁面直接下單非常方便,目前已經支持直接跳轉到官網搜索結果頁的航司有:CZ,CA,MF,ZH,MU,JD,HO,HU,VS,BA,因為這些航司網站使用URL傳參的,比較方便直接跳轉到搜索結果頁。其餘的航司我是設置跳轉到momondo的搜索結果頁,因為momondo是類似於google flights的比價網站,本身不買票,余票數據比較全,在momondo上的結果列表裡也是可以跳轉到航司官方網站購買的,所以不需要擔心靠不靠譜和信用卡積分問題(之前設置的是google flights,但是國內的朋友打不開)。
- 另外,其他信息一欄里有兩個圖標是兩個實用的小功能,第一個圖標是航線圖,第二個是行李直掛信息(行李直掛信息由北美票帝提供),展示如下:
為了提升不同設備的用戶體驗,手機訪問與電腦版稍有一點區別,主要是對搜索結果的展示做了優化,變成了逐條顯示而非桌面版的列表顯示(如下圖),其他都大同小異
另外,我專門錄製了一個視頻演示手機端的操作,現在界面改變了一些,但是主要的步驟還是一樣的:
注意事項:
目前已知的問題:
- 有同學反映老版本的ios(ios10)瀏覽器打開會出現白屏問題,但是因為我手上並沒有用ios10的機器(ios12和13打開都沒有問題),沒辦法查看具體錯誤代碼,希望如果有能力的同學遇到白屏可以用調試模式幫我看一下具體錯誤,我可以再想辦法修復。
- 10月24日為航司換季的日期,之後的的日期的短途航班結果並不可靠(因為現在大部分航司都沒有出10月24日之後的官方排班表,全網範圍內都沒有百分百準確的十月24日之後的排班表,如有更新,我也會儘快更新搜索列表),請慎重購買,建議選擇與現有排班表一致的航班
其他注意事項/使用問題/更新維護公告等可以關注我的博客頁面:點擊這裡 也可以關注我的微博 @洋蔥熊Onion 獲取最新更新和反饋問題。
另外,python程序的源代碼已經採用GNU通用公共許可協議的進行了開源,有python基礎的同學可以直接拿來使用,有修改建議也歡迎pull request:Github源代碼頁面
本著非盈利(用愛發電!)的態度來開發這個APP,但是代碼和伺服器的更新維護還是需要一些成本的。如果你覺得這個很有用,也為了這個APP能夠長久運行下去造福更多人,可以在查票工具的網頁里選擇打賞~謝謝支持!
現在開學了,作為一個半吊子程序員的精力也有限,有志同道合的小夥伴們歡迎參與以後的網頁維護/航線更新工作, 爭取幫助更多滯留海外的同胞踏上回國的航班(有興趣的可以發郵件聯繫我 [email protected] )!也請大家多多支持,多多轉發,讓更多有需要的人看到,爭取讓這個項目能夠運轉到回國不再需要搶票的時候為止!
最後還是要感謝美卡指南博客和北美票帝等源源不斷及時提供最新航線信息,所有的這些離開了航線信息都是沒辦法實現的!