如何解码/重新创建 Google Flights 搜索网址?

2024-03-22

问题

On 谷歌航班 http://www.google.com/travel/flights,搜索信息被编码在 URL 参数中,这样用户就可以轻松地彼此共享航班搜索。 URL 格式如下所示:

https://www.google.com/travel/flights/search?tfs=CBwQAhoeagcIARIDSE5MEgoyMDIxLTA5LTEzcgcIARIDU0ZPGh5qBwgBEgNTRk8SCjIwMjEtMDktMTdyBwgBEgNITkxwAYIBCwj___________8BQAFIAZgBAQ

我正在尝试编写一个程序,可以根据航班信息(出发地、目的地、航班日期、乘客等)生成航班搜索 URL。为此,我需要知道信息是如何在 URL 中编码的,以便我可以重新创建它。

我尝试过的

我知道航班信息是用 base64 或其某些变体编码的(我一直在使用base64decode.org https://www.base64decode.org/供测试用)。对于 2021 年 9 月 13 日至 2021 年 9 月 17 日从 HNL-SFO 出发的往返航班,Google Flights 的网址如下:

https://www.google.com/travel/flights/search?tfs=CBwQAhoeagcIARIDSE5MEgoyMDIxLTA5LTEzcgcIARIDU0ZPGh5qBwgBEgNTRk8SCjIwMjEtMDktMTdyBwgBEgNITkxwAYIBCwj___________8BQAFIAZgBAQ

的部分tfs下划线之前的查询参数解码为

jHNL
2021-09-13rSFOjSFO
2021-09-17rHNLp

其中包含一些(但不是全部)可识别的航班信息。我不明白的是可识别信息之间的空白。使用这个网站 https://www.babelstone.co.uk/Unicode/whatisit.html,我了解到空白是字符的混合:

U+0008 : <control> BACKSPACE [BS]
U+001C : <control> INFORMATION SEPARATOR FOUR {file separator (FS)}
U+0010 : <control> DATA LINK ESCAPE [DLE]
U+0002 : <control> START OF TEXT [STX]
U+001A : <control> SUBSTITUTE [SUB]
U+001E : <control> INFORMATION SEPARATOR TWO {record separator (RS)}
U+006A : LATIN SMALL LETTER J
U+0007 : <control> BELL [BEL]
U+0008 : <control> BACKSPACE [BS]
U+0001 : <control> START OF HEADING [SOH]
U+0012 : <control> DEVICE CONTROL TWO [DC2]
U+0003 : <control> END OF TEXT [ETX]
U+0048 : LATIN CAPITAL LETTER H
U+004E : LATIN CAPITAL LETTER N
U+004C : LATIN CAPITAL LETTER L
...

这表明我没有正确解码数据。我尝试过 Base64 的其他一些变体,但没有任何运气。

有谁知道这些信息是如何编码的?我无法弄清楚的另一件事是下划线后面的信息(8BQAFIAZgBAQ) 被编码。根据 Google Flights 网站的行为,我认为它对乘客信息进行了编码,但它的 base64 只解码为空白字符。

附加背景

两年前,我制作了该程序的一个工作版本,它生成如下 URL

https://www.google.com/flights?hl=en#flt=ORD.MCO.2021-07-16*MCO.ORD.2021-07-19;c:USD;e:1;px:2,2,0,0;sd:1;t:f

几个月前,谷歌将他们使用的格式从上述格式更改为编码版本。我想弄清楚如何重新创建编码的 URL,以便我可以更新我的程序而不是停用它。


您可以使用以下命令让程序以查询格式输出航班 URLq网址参数无需对 URL 进行编码/解码。

例如:

https://www.google.com/travel/flights?q=Flights%20to%20SFO%20from%20HNL%20on%202022-09-13%20through%202022-09-17

这会导致结果页面:HNL SFO 航班结果 https://www.google.com/travel/flights?q=Flights%20to%20SFO%20from%20HNL%20on%202022-09-13%20through%202022-09-17

编辑(2023-09-26):

尽管有一些评论,这个方法仍然有效。确保您将格式设置为自然语言搜索字符串:

“1234-12-34 至 1234-12-34 航空公司 2 个座位从 Y 飞往 X 的航班”

https://www.google.com/travel/flights?q=Flights%20to%20SFO%20from%20HNL%20on%202023-12-13%20through%202023-12-17%202%20seats%20on%20united

HNL SFO 关于美联航 航班结果 https://www.google.com/travel/flights?q=Flights%20to%20SFO%20from%20HNL%20on%202023-12-13%20through%202023-12-17%202%20seats%20on%20united

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解码/重新创建 Google Flights 搜索网址? 的相关文章

  • 可以从 Base64 字符串中删除等号吗?

    我有一个字符串 我将其编码为 Base64 以节省空间 如果我去掉最后的等号有什么大不了的吗 这会显着降低熵吗 我该如何确保结果字符串的长度是固定的 gt gt gt base64 b64encode combined digest alt
  • 如何在 ruby​​ 中进行 base58 编码?

    我正在尝试编码原型股 http protoshares net 原始格式的钱包地址 如中所述Bitcoin https en bitcoin it wiki Technical background of Bitcoin addresses
  • 使用javascript将Base64转换为图像文件

    有谁知道我可以使用任何简单的javascript将base64字符串转换为图像 最好是jpg格式 以便我可以将图像保存到文件中 这是针对签名板应用程序的 我可以将签名转换为 base64 格式 但需要将签名另存为图像文件以用于嵌入到 Cry
  • 如何解码/重新创建 Google Flights 搜索网址?

    问题 On 谷歌航班 http www google com travel flights 搜索信息被编码在 URL 参数中 这样用户就可以轻松地彼此共享航班搜索 URL 格式如下所示 https www google com travel
  • Python 3 和二进制文件的 base64 编码

    我是 Python 新手 确实有一个问题困扰着我 我使用以下代码获取 zip 文件的 Base64 字符串表示形式 with open C Users Mario Downloads exportTest1 zip rb as file z
  • asp.net Base-64 字符串中的无效字符

    我有一个 C 移动网站 并且在使用某些移动客户端时遇到问题 我在下面发布了一条跟踪 但基本上是手机浏览器或手机连接到互联网 url 的 wap 网关对表单中的视图状态隐藏输入进行编码 wEPDwULLTExNTMyOTcwOTBkGAEFB
  • 使用 JavaScript 更改 URL 参数并指定默认值

    我有这个网址 site fwx position 1 archiveid 5000 columns 5 rows 20 sorting ModifiedTimeAsc 我需要的是能够将 行 url 参数值更改为我指定的值 比如说 10 如果
  • 验证 Base64 编码图像

    我正在构建一个应用程序 允许用户POSTHTML5 画布数据随后以 Base64 进行编码并显示给所有用户 我正在考虑将数据解析为实际的 png 文件并存储在服务器上 但 base64 路由允许我将图像存储在数据库中并最大限度地减少请求 图
  • Java 8中basic和url base64编码的区别

    Java 8Base64 http docs oracle com javase 8 docs api java util Base64 html库有两种可用于 URI 构建的变体 基本 变体和 URL 和文件名安全 变体 该文档指出RFC
  • 如何在 JavaScript 和 Python 中对 unicode 字符串进行 Base64 编码?

    我需要一种加密算法 将文本加密到文本 输入文本可以是 unicode 输出应该是 a z A Z 0 9 最多 64 个字符 并且可以再次解密为unicode 它应该用 javascript 和 python 实现 如果已经有一些图书馆可以
  • 文件包含\u00c2\u00a0,转换为字符

    我有一个 JSON 文件 其中包含这样的文本 wax and voila u00c2 u00a0At the moment you can t use our 我的简单问题是如何将这些 u 代码转换 而不是删除 为空格 撇号等 Input
  • 在AngularJS中使用包含base64数据的变量加载图像src

    使用包含变量加载图像base64AngularJS 中的数据 我正在尝试找到从包含的变量加载图像源的正确方法base64编码图像数据 例如使用从画布中提取toDataURL 起初我只是尝试这样 img src image dataURL 其
  • 如何使用 Python 中的电子邮件模块从“application/pkcs7-mime”中提取数据?

    Problem 我正在开展一个项目 我们必须对电子邮件进行分类 对于这个项目 我需要从电子邮件及其附件中提取所有文本 我的问题是某些附件的类型为 application pkcs7 mime 我不知道如何处理这些附件 我尝试过的 impor
  • 如何在java中将图像转换为base64字符串? [复制]

    这个问题在这里已经有答案了 它可能是重复的 但我在将图像转换为时遇到一些问题Base64发送给Http Post 我已经尝试过这段代码 但它给了我错误的编码字符串 public static void main String args Fi
  • Javascript 将 URL 转换为 BASE64 图像

    我正在构建一个 Ionic2 应用程序 我正在尝试将图像 url 转换为 base64 图像 我已经发现this https stackoverflow com questions 22172604 convert image url to
  • 读取 URL 查询参数值 (Vue.js)

    在 vuejs 回调 URL 中 我有一些参数值 我需要读取这个参数值 例如返回url是 http localhost 8080 sucesspage encryteddata abdeshfkkilkalidfel 9a 我努力了this
  • 处理大文件或多个文件时 file_put_contents 太慢

    我在用文件放置内容创建视频文件 问题是速度和性能 创建平均大小为 50 mb 的文件平均需要大约 30 到 60 分钟 而且这还只是一个文件 我正在解码字节数组以创建文件 如何提高速度和性能 json str file get conten
  • 如何将视频转换为base64数据

    我有一个应用程序 可以从相机或图库中获取视频并将其转换为 Base64 数据 并将该数据发送到服务器 但问题是每当我转换 Base64 数据时 videodata 变量中的数据都不是正确的 为此我使用了下面的代码 FileInputStre
  • C++:从字符串中删除所有 HTML 格式?

    我有一个字符串 其中可能包含 br 或 span span 标签或其他 HTML 字符 实体 我想要一种强大的方法来剥离所有这些并获取剩余的 UTF 8 字符 理想情况下 这应该是跨平台的 像这样的东西是理想的 http snipplr c
  • 生成 CloudFront 签名 URL 时性能缓慢

    我正在按照此示例使用 PHP 在 CloudFront 上创建签名 URLhttp docs aws amazon com AmazonCloudFront latest DeveloperGuide CreateURL PHP html

随机推荐

  • 为什么接受数组的 C++ 模板并不比根据 GCC 5.3 和 Clang 4.0 接受指针的模板更专业?

    为什么接下来的两个模板声明不明确 因此两者都不比另一个更专业 我知道这个问题在 Stack Overflow 上已经被多次提出 但通常人们会回答如何解决歧义 而不是回答为什么会发生这种情况 I template
  • 在远程主机中:无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]

    部署后 当我尝试发送邮件时出现以下错误 500 500内部服务器错误 Swift TransportException 无法与主机 smtp gmail com 建立连接 连接超时 110 堆栈跟踪 at in SF ROOT DIR li
  • Android 模拟器 - Wifi 错误

    我正在使用 Android SDK 模拟器广告尝试连接到网络 我无法在设置 gt 无线和网络中执行此操作 在我需要打开 WiFi 的地方 我收到 错误 怎么解决呢 Gorov 关闭模拟器 关闭以太网 火线和任何其他网络接口 他们全部 我的意
  • 在同一程序中调用 srand() 两次[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么当我在两个截然不同的点调用 srand 时会导致数字不是随机的 一旦我删除其中一个 它就会恢复正常 这取决于你如何称呼它 的目的sr
  • 在 JavaScript 中,如果我分配给一个具有 getter 但没有 setter 的对象属性,会发生什么情况?

    在下面的代码中 都使用了console log o x print 1 任务会发生什么情况o x 2 就这样被忽略了吗 var o get x return 1 console log o x 1 o x 2 console log o x
  • Java:在后台更新有大量行的 JTable

    我正在编写一个简单的 Java Swing 实用程序 它将从 MQ JMS 服务器读取消息并将它们显示在 JTable 中 private void getMessages try if null Queue Queue close Clo
  • 如何隐藏 emacs 创建的备份文件?

    我在使用 vi 很长时间后才开始使用 emacs 让我烦恼的一件事是 每当我修改文件 保存它并退出 emacs 时 我都会看到在同一目录中创建一个名为filename 如果我编辑的文件是filename 有什么办法可以摆脱这个吗 或者隐藏这
  • 将预测与 svyglm 结合使用

    我发现了一些奇怪的行为predict和svyglm对象从survey包裹 如果你的新数据在predict具有一个级别的因子 字符会输出错误 Error in contrasts lt tmp value contr funs 1 isOF
  • 如何使用 Ruby MiniTest::Spec 和 Rails 进行 API 集成测试?

    我正在构建一个包含 Rails API 的应用程序 并希望使用 Ruby MiniTest Spec 进行测试 有什么好的设置方法吗 例如 良好的目录组织 包含文件的良好方式等 我正在使用 Rails 3 In Action 一书中的指南
  • 在 Windows 上使用 Emacs 编译 C++ 程序

    我已经使用 Emacs 进行基本文本编辑有一段时间了 但从今天开始 我尝试使用它进行 C 编译 在过去的几个小时里 我一直在寻找如何解决这个问题 但我在他们的技术中不断遇到障碍 我认为其中一些与教程过时有关 基本上 我想做的就是能够通过 M
  • FCM/GCM JSON 有效负载 - 如何指定大图标?

    我正在使用 firebase 端点发送推送通知 它正在成功运行 我正在使用邮递员将请求发送到 FCM 我的问题是我不明白如何发送大图标 FCM 有两种可以发送的有效负载 数据有效负载和通知有效负载 See here https fireba
  • Web 控制浏览器后退按钮

    我正在使用导航 2 和setUrlStrategy PathUrlStrategy 我添加了WillPopScope但是onWillPop单击浏览器的后退按钮时不会调用 Widget build context return WillPop
  • 了解 LISP 中的绑定变量和自由变量

    我正在阅读SICP 又出现了绑定变量和自由变量的话题 然而 我对此感到困惑 术语 绑定变量 仅适用于形式参数变量吗 此外 文本还指出过程定义 绑定 其形式参数 这让我感到困惑 因为有些人说我们将值 绑定 到变量 显然 当我们谈论不同类型的变
  • Gulp 复制空目录

    In my gulp构建我已经创建了一个运行的任务after所有的编译 丑化和缩小都已经发生 此任务只是复制所有内容src进入dest早期任务尚未触及 处理的目录 我遇到的一个小问题是 这会导致目录中出现空目录dest目录 有没有办法告诉g
  • [UWP]调整BitmapImage的大小、压缩并获取base64字符串

    这是我的第一个主题 我正在 UWP 中重写在 Silverlight 8 WP8 中开发的应用程序 我在从 BitmapImage 获取 Base64 编码字符串时遇到问题 我工作了很多天都找不到解决方案 总之我需要 从设备图库中选择图像
  • H2 控制台和 Spring Security - PermitAll() 不起作用

    我正在创建rest api并实现Spring Security 一切正常 但我希望 目前 当我仍在开发时 能够让任何未经授权的人打开localhost 8080 console 我的代码 Override protected void co
  • docker-desktop 使用 12 GB RAM 来运行一个具有 24 MB RAM 的容器?

    在我看来就像 WSL2 容器docker desktop使用 12 GB RAM 来运行一个具有 24 MB RAM 的容器 是什么赋予了 详情如下 另外 当我将所有进程中的所有驻留 RAM VSZ 加起来时docker desktop 总
  • 使用 Node.js 在 Mongodb 中存储 JS 函数时出现问题

    我有一个简单的 JS 类 var User function id this id id this sayHello function return hello 然后 我使用默认的 Node js 驱动程序将其存储在 MongoDB 中 u
  • 在 Razor 中显示表达式值

    我想在剃刀视图中将以下表达式的值显示为文本 doc Extension string Empty ToUpperInvariant 我已经尝试了所有变体 但似乎没有任何效果 我知道我可以使用临时变量来存储该表达式的值 但我想知道是否有一种方
  • 如何解码/重新创建 Google Flights 搜索网址?

    问题 On 谷歌航班 http www google com travel flights 搜索信息被编码在 URL 参数中 这样用户就可以轻松地彼此共享航班搜索 URL 格式如下所示 https www google com travel