首页 > 爬网站资料,遇到要求 connection id token,但是是以非正规方式获取该id,如何解决?

爬网站资料,遇到要求 connection id token,但是是以非正规方式获取该id,如何解决?

小弟最近正在研究如何爬取这家机票资料

我们可以从 Chrome dev tool 看到从client 端连续发送出了两个类似的 requests

https://api.flyvair.com/api/v1/bookings/flightavailability?origin=TPE&dstn=CNX&adult=1&child=0&infant=0&promoCode=&departFrom=2015-10-27&departTo=2015-11-04&returnFrom=2015-10-27&returnTo=2015-11-04

其中第一次是 OPTIONS methods, 我不知道他是做啥的 但是里面的 headers 有请求 'Access-Control-Request-Headers': 'accept, x-connect-id'

然而这次的 OPTIONS request ,伺服器端似乎也没有回送任何 x-connect-id value

而第二次 Get method Request, 就是真正跟 伺服器端要资料了,里面重要的资讯就是在档头 header 夹带了 x-connect-id

只是真是坑爹,我找了整个晚上,根本找不到他吗的 x-connect-id value 从哪里生出来。

各位前辈高手,可以帮小弟给点方向吗? 小弟是用 Python requests 做开发的


一. 先找发这个请求的地方, 看是怎么赋值的, 关键字 x-connect-id.

二. 根据第一步的结果,发现这个是从本地存储中读出来的, 那么接下来就是找, 是什么地方存进去的. 关键字 connect-id

三. 根据第二步的结果, 发现保存的这个值来自于 guid 这个方法的返回值, 然后再找 guid 这个方法是怎么定义的. 关键字 guid

四. 找到 guid 方法定义的地方, 得到答案. 以下为该方法的运行结果.

下面图发请求的时候所带的 x-connect-id 的例子:

所以, 答案就是这个 x-connect-id 是随机产生的.


以上代码来自于这个文件: https://www.flyvair.com/src/js/app.js?bust=1446107282487
因为代码被压缩过, 可以使用下面这个网站进行格式化, 以便阅读.
http://jsbeautifier.org/

【热门文章】
【热门文章】