查询神器的地址是:
大家好,我是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] )!也请大家多多支持,多多转发,让更多有需要的人看到,争取让这个项目能够运转到回国不再需要抢票的时候为止!
最后还是要感谢美卡指南博客和北美票帝等源源不断及时提供最新航线信息,所有的这些离开了航线信息都是没办法实现的!