夜半无人 开始写正是泥潭开黑打完游戏的贤者时间 (哦 同时还在摸鱼贴 忆往昔峥嵘岁月愁?)
无聊了来写点个人最近微调搜票工具的经验分享吧
(不太会写任何形式的文章 所以零言碎语很多 请包容
一向是没有技术 没有内容量 只有感情)
虽然
而且还能强迫大家看我灌水 ![]()
这里将会介绍
- 大概写python脚本的过程
- GCP和OCI的使用方式
- 一些有用无用不知道的微调优化 试图在跟其他脚本的竞争中抢占先机
更新
04/20
- 添加了昨天遗忘的Azure Free Tier对比
- 更多的无病呻吟
- 对AS的茫然
- 补完了OCI篇
应该是基本完整了
一、前言
事情的起因毫无疑问 一定是因为
1. 有headroom
所以如果想
- 跑在票代前面发现你想飞的里程票
毫无疑问!
- 搜索现有搜票工具不支持的线路 / 航司 / 酒店 / …
现有工具可太多了 但是总有不合心意的地方
- 不费自己的机器来一直运行搜票脚本
倒不是费不费机器 随便跑个脚本才能多少 但是怕哪天Linda发疯封IP
- 不够信任第三方的搜票软件
毫无疑问 各种工具都是有延迟的 即时刷新的额度有也太有限了
省下一笔付费工具的订阅费完全没省下比如seats.aero的订阅费 毕竟每写一个工具 只能查一家的 换另一家的改动虽然不大 但是也得慢慢调试
几下几十下几百下,其实不妨尝试部署一个自己的搜票/房工具。
和
2. 有需求
去年年底回国 返回美丽国继续打工上班的时候 有幸捡到了@smb 老师贴子里的某一班JL12
可怜的小安同学第一次坐真·头等舱(AS大板凳可别来犯蹭!) 觉得确实不错
想了想一年花个一千多刀*2往返坐飞机(
如果有机会再体验一次东京纽约线啥的也挺好 而且也是开卡点数的合理变现手段嘛
二、开始干活(写脚本)
一切的一切 起点肯定是 @smb 老师的 0基础用Python和Postman搜里程票教程
老师的成果展示:
- [dead]JL A350-1000 商务舱 非临期北美线里程票 availability
- https://www.uscardforum.com/t/topic/250847 (点不开的同学 还不快去发言灌水
) - 未知的我也点不开贴不出来的链接
但是我无数次一分钟两分钟点进去 都能看到链接被四五个人点过了 ![]()
尤其是如果热门的机票突然露出 大家的手更是快过闪电 ![]()
按照教程里把calendar view的curl query取出来随便扔postman里试验了一下没毛病 验证了一下完整的response一切顺利 接下来就是想办法把python功能补完了 再随便扔个地方跑起来了吧 (当时天真地想着 @lucasI 老师不是说了0基础成本 部署脚本吗 应该很容易吧)
第一步就傻眼了 不知道怎么变成python代码(都这个年代了 总不能让我一行一行写吧
) 毕竟postman是真没咋用过
还好网上找到了类似这样的工具:https://curlconverter.com/ 直接就转化成正常的python代码了
哎 其实我是个铁笨蛋 明明二楼就有别的老师分享过了
接下来就是各种无聊的小修小补了
- 依次列出来想搜的几条路径 HND-DFW双向 HND-NYC双向
1.1 LHR CDG直接排除 没工夫管他们 本美西人民不在乎 - 写个函数 生成一下接下来的11或者12个月
- 把上面两个信息插入回request
- 添加无聊的多次query之间的随机间隔(10s左右)
- 按照response格式 取出想要的信息 判断到底有没有80k的直飞头等舱
5.1 有结果就先存下来 打印出来 回头再想怎么办吧 反正现在ORD/LAX/SFO的老舱F我是不想要的 - 加一些可有可无的debug信息和各种奇奇怪怪的debug方法
- 循环一万次开始跑吧!

本地验证了脚本有效没有什么卵用啊 毕竟人类是长在手机上得 没长在电脑上 ![]()
还好选择了python了 毕竟有一些倒霉孩子
Nodejs:lib太垃圾了,我几乎被坑的裤衩子都没了;如果大家自己写建议用python,我当时纯粹就是贪图npm install比较方便;
每分每秒都有人在证明 选择比努力更重要 ![]()
我想起来slack和discord这些工具有那么多bot 提供了那么多方便的接口 肯定很简单易用吧
网上随便搜一搜 那我开个新的discord channel 绑定一个webhook用来接收消息不就完事儿了吗
长时间运行发现了以下一些问题
- 长时间存在没人要的烂票(比如HND-LAX或者各种临期票啦)在刷我discord channel的屏
解决方式:随意加了一个存储 如果一定时间内找到过这张票就跳过 - AA有些时候有幽灵票
解决方式(正统):重新写个单日query 一般JAL F的票应该只有一张
票的余票数量是不同的
解决方式(本懒人):一个月如果有个≥3张的票 那99.99%肯定是
票了 至少这样90%的
票情况都排除了 不管了 边际收益太低了 - 有些时候程序挂了不知道
解决方法:随便每隔一段时间发送一个heartbeat消息给另外的discord debug channel 不影响体验 还可以查验
三、脚本上云
本地稍微跑一跑 挂机一晚上看看效果 感觉没啥问题就开始想办法找个地方部署脚本了
毕竟 @lucasI 老师已经介绍过一些AWS的基础知识了
先总结
Free tiers
AWS
- 没有永久免费的虚拟机实例(VM instance)
- 12个月的试用期 可以有两个instance
- 每月提供 1M 的lambda request额度(大概可以估算为 86400 * 30 / 1M = 2.5秒一次request)
- 链接:免费云计算服务 - AWS 免费套餐
更多体验可以参照 0 成本用 AWS 部署自动化搜票/房工具
GCP
- 一个永久免费的E2-micro虚拟机实例(跑这些小破脚本足够啦) 但是其他服务有可能收费
- 300刀赠金 九十天试用期
- 令人迷惑的扣款和记账(我们仍未知道赠金是哪个服务扣除的
)
- 还算常人可以理解的UX/UI
- 链接:免费云功能和试用优惠 | Google Cloud Free Program
OCI
- 两个永久免费的E2-micro和一个永久免费的A1 划重点 一共三个虚拟机

- 300刀赠金 三十天试用期
- 漏洞百出的记账 从来没变动过的数字(你搞个HTML斜杠变成了乱码 是觉得自己很幽默吗
?) - 极其难用
- 链接:Oracle Cloud Free Tier | Oracle
Azure
奇怪 我昨天是怎么忘记把Azure列出来的 ![]()
估计是大半夜太困了 ![]()
- 没有永久免费instance
- 1M 免费额度
- 链接:https://azure.microsoft.com/en-us/pricing/free-services
内容和AWS基本一致 感觉不到优势 我直接放弃试用了。。。所以没有体验分享
开始部署
刚开始我计算了一下 4条线路(年底也许升级到6条线路) 12个月 扔到AWS上完整query一次就要三五分钟了 这种延迟还是跟AWS说88吧 (后来也没有再用过) 不小心用超了 也许还要被 @AWS 老流氓抢钱 不如直接避开以免AWS free tier账户突然收到账单
看到GCP之后我愉悦地发现 这是有永远免费完整虚拟机的 我乐观的估计 同时跑十个几十个python脚本应该问题也不大
步骤 GCP篇
以英文版为例
- 打开 https://cloud.google.com/ 并注册账号
- 进入 https://console.cloud.google.com/ (如果没有自动进入)
- [Optional] 可以创建新的project—— JAL First Class Finder

- 在Console内创建虚拟机(Create a VM)
- 创建一个新的E2-micro instance
创建虚拟机图示
个人理解 Region和Zone应该无关紧要 我选了一个离我最近的 不改把Zone留空为Any应该也可以
请一定选择E2-micro 显示价格为7.11刀每月 但是个人理解 至少6.11部分是明文免费的 1.00部分摸不到头脑
(哎 这图摸到了)
- 等待虚拟机启动完毕
虚拟机就绪图示
理论上应该会自动跳转 等待一会儿即可
也可以通过 https://console.cloud.google.com/compute/instances 跳转 Status变为
就代表已启动
- 通过SSH连接进入虚拟机
- 上传脚本文件
- 启动脚本
还等什么呢 直接输入命令 就开始跑吧!然后在手机上坐等消息吧
在GCP上运行一周 我就开始aggressive地开始企图优化了
一个instance容易被Linda限流封IP 那我用两个instance 速度不就翻倍了吗
但是GCP的账单和Free Tier的免费额度 可能好像告诉我这样不太行
只能再另寻出路了咯
而且
虽然GCP可以多个账号多开 但是因为某些原因 我也许不敢太过分
直到我很意外地发现OCI的always free tier 竟然提供三个实例 如此大方?!?!
真是小觑了天下英豪啊
步骤 OCI篇(今日不晚 已更新)
还是以英文版为例 但是OCI我创建小号一直失败 也许是因为OCI需要绑定信用卡吧 ![]()
所以有一些创建账号相关内容缺失 但是想必也不重要吧 毕竟泥潭的智商在线 这都不是事儿
- 打开 Oracle Cloud Free Tier | Oracle 并创建账号
创建账号示例图
他喵的OCI的账号创建也是繁琐的很 甚至还需要我搞什么奇奇怪怪的authenticator 但是毕竟没有什么坑 跳过
甚至邮箱会被Trim 真的绝了
邮件收到信息后继续验证即可
OCI继续创建账号
继续输入地址
你就会被要求验证信用卡了
接下来的其他步骤我就跳过了 毕竟我创建小号一直卡在这里
- 在Console内创建虚拟机(Create a VM)
- 创建虚拟机
创建虚拟机示例图
第一个坑
这里就来了
默认实例不是E2 而是A1 点击Change Shape的时候
三个AD (Availability domain 感觉是类似Zone的意思)不是每个都有E2-micro的 有时候需要三个AD里找一下!
选择合适的VM instance进入下一步骤
第一次的用户还需要创建新的Virtual cloud network等等 我直接使用了已存在的
第二个坑
SSH key也不像Google是自动绑定到Google账号的 每次登陆需要一个额外的验证
这边建议您第一次创建一个key pair之后 下载公钥私钥 后续的实例重复使用同样的公钥呢亲
关于公钥私钥 可以参考公开密钥加密 - 维基百科,自由的百科全书 不在本文范围之内
然后依次下一步即可创建虚拟机
当然因为我已经有了几个VM在跑 就得到了错误提示
- 等待VM就绪
如果没有跳转 可以通过https://cloud.oracle.com/compute/instances 进入VM列表
- 使用VM
使用示意图
下一个坑来了 OCI没有自带的SSH FTP工具!!!
总不能有人逼迫我用windows自带吧?应该是
都不用吧
我被迫网上搜索了一下 选择了Xshell8和 Xftp8工具组合 感觉确实不错 难怪网上好评不少
A. 通过简单的ssh 命令即可
举个例子 ssh://[email protected]:22
B. 使用之前下载的私钥来登陆
- 上传脚本文件
- 运行脚本
这里就平平无奇 跟GCP完全一样了 输入命令直接运行即可
没办法 明明OCI用起来比GCP多辣么多步骤 但是你提供三个instance你就是我一辈子的好鹏宇了 ![]()
四、额外思考
哎 没能完全停下来 今晚先补充一点额外内容
VM instance有什么用
我们首先可以假设 脚本挂了是因为被Linda限流了 那你有多个实例 多个IP地址 天然就可以并行跑脚本啦
如果我有4个VM实例 分别运行每一条线路 以10s间隔为例 是不是我的延迟最多就是120s(12个月)而已了呢?
如果我有8个实例 是不是可以每个线路只查半年了 延迟减半了呢
如果我有48个实例 是不是我的延迟最多只有5s了呢
如果我有96个实例 是不是我还能准备一个备份 保证服务不会single point failure了呢
脚本搜票完全是一个众人拾柴火焰高的事情 天然符合论坛分享精神的呢 ![]()
(当然众人之间又是互相竞争机票的关系)
寻找合适的伙伴一起运行脚本自然能大大提高你的机票提示的时效性了呢 ![]()
收到通知就无脑抢票吗?
刚开始有工具的时候我还兴致勃勃 毕竟每次discord弹出提示 过半时间泥潭的链接还是没有被点击过的 我点进去想hold成功率也很高
心里想着 票贩子转手票 随手乱hold一下 我能拦一手就拦一手呗
回头问问朋友 问问潭友 看看有没有人要 举个![]()
DFW-HND JL11 2025-07-05周六有1张头等
这张票有人要吗 之前随手拦下来 但是我也不需要啊
没人要今晚我就退了
后来逐渐就倦怠了 基本就是点进去一下 2hr订票窗口自动hold而已
自己想要的票一直没见过 折腾半天 也就订了一张大概率回头还是要退的
这可真是徒劳无功想把每朵浪花记清了
不知道什么时候能猛然回头 你在那里啊
差生文具多
哎 折腾一圈 也不过是在 @oneworld 的残羹剩菜里挑挑拣拣
真正有货有存款的人 都直接JL CX里程360天左右已经hold 过了
这里剩下的不过都是别人吃干抹净不稀得要再退出来的玩意儿了吧
还得跟一群不知道是票代或者刷AA EP的大佬们拼抢 没意思 真的没意思 ![]()
AS商务舱
写不动了真的不想写了 刚开始拍脑袋没有想过
后来仔细想的时候茫然了 AS我到底要搜什么 可预见的短期未来 我应该没有从美西去欧洲的需求 平常求的也不过就是回东亚 跟父母旅旅游吧
美亚线目标商务舱 各种奇奇怪怪 零零碎碎的
- 60k JL (nrt-sea/yvr) 我应该不太想坐
- 75k/85k JX JL(351?) KE 有一定用处 但是也就一般吧 而且同档次替代品也很多
甚至很多票330天准时放票的时候 很能活几个小时乃至几天就证明了 抢的不凶 也就不值得费心思吧 - HA 现在这么贵 感觉不值当啊

- CX J 见不到影子

其他的更多AS经验我也不懂了 求大佬们顺手喂喂饭
虽然很多大佬的经验分享都是 管你飞不飞 先占了票再说 可是
哎。。。
五、后记
希望本文涵盖了足以让您一步一步follow 尽量少踩坑的使用GCP OCI来部署运行您的自定义脚本
个人理解 也是希望 本文真的可以允许对于cloud 0基础的人来上手(毕竟我本身就是0基础 完全不懂云)
或者也可以选择劝退一些觉得麻烦的人 不如贡献出来免费GCP/OCI VM 几个人一起合作(带资入股也是入股!) ![]()
当然就像老师说过的
在继续看本帖之前,你将会需要:
一个邮箱这个真的可以不需要- 非常基础的代码知识
- 如果你已经读过 0基础用Python和Postman搜里程票教程,那你的基础 + ChatGPT 已经足够阅读本帖。如果还没有,请移步上贴。
- 一段可以运行的搜票/房脚本
- 如果你已经读过 0基础用Python和Postman搜里程票教程,那你应该已经有一段搜票脚本。如果还没有,请移步上贴。
本文的AA A35K F只是一个最简单的样例 这里对于脚本部分没有包教包会 毕竟每个网站的response都可能大相径庭
如果有什么疑问 或者 对于使用方式的不同意见 欢迎分享讨论(放心 当然肯定以您的意见为主!)
Extra 需求决定使用方法
如果需求单一 只需要追踪一两种服务 频率要求不高 AWS Azure没有问题
如果对未来有很多灵感 很大期许 个人推荐利用OCI的三个免费instance(红色有角三倍速!) 甚至搭配多个GCP账号一起使用
毕竟instance越多频率就越高 最后的notification都是可以利用同一个discord webhook整合到同一个频道的
额外更新 AA开始风控之后的各种尝试
当时发现aa加了反爬 cookie等等本文也就被干趴下了 本差生当时看到大家说Selemium也去尝试了一下 但是一直很奇怪的直接被403
后来朋友来家访问的时候说 你这直接在浏览器console里访问就是了 勉强时不时还能query几下 但是qps比起直接OCI版本已经慢了十倍不止了
![]()
而且还是会时不时403 逼迫我增加奇怪的重启 等等
只是拿出来抛砖引玉 看看大佬们现在都是什么玩法
[Update] 被限速之后延迟超大 感觉得找几个朋友一起运行了






































