去哪儿,模拟登录(扫码登录)

声明:本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途。否则后果自负。如有侵权,请告知删除,谢谢!

一,去哪儿 出行类大厂,为了安全,查询很多信息需要身份校验,有多种登陆方式  

1.1  如查询航班信息时,自动弹出登录窗口,会有验证码验证

1.2  点击首页登陆按钮,跳转到如下登录页面,其中1 / 2 两种方式 需要滑动验证

 1.3  由于此网站风控较为严格,利用技术抓取网站信息,对帐号登录次数 ,验证发码发送次数等都有限制,今天咱们分析下 ,上图中第 4 种扫描二维码的方式

 二 ,扫码登录流程分析

请求登录页, 观察网络请求,查看发送了那些求请求,寻找二维码的图片在哪里加载 ,关键请求都需要哪些参数

经过观察思考,基本流程如下:

                                                                      图2.1

图2.2 

                                                                         图2.3

                                                                         图2.4

                                                                         图2.5

 到此基本流程就清楚了

接下来开始一步步模拟请求

首先请求登录页,不需要什么参数可直接请求,成功后返回 appid 和两个 cookie

 然后去获取 sessinId  (图2.2)

然后获取Token   (图2.3)

 现在就可以 获取 二维码了, 请求参数中需要 上一步的 Token 和时间戳,  注意请求Cookie 多了ctt_june 和 ctf_june ,但是经过测试 不带也没关系

 

 接下来就是 每隔 0.5 秒去判断  二维码 是否被扫描  (图2.4)

 这时候 打开项目路径下找到下载的二维码 ,拿出手机扫描后 ,二维码状态由 未扫描 变成 预登录

点击确认登录后返回了相关数据

 注意这个扫码过程  二维码状态变化 浏览器看不到 ,一旦你扫了码  浏览器会清空很多数据 , 在pycharm 中可以看到,   再注意!!图2.5    最后一次刷新二维码状态的请求(就是扫码确认登陆后) 返回了有关用户信息的cookies,并自动请求去哪网主页

 最后模拟请求 去哪儿 主页

 到此 扫码登录 自动化登录 成功

(注意这个过程 ctt_june / ctf_june, 的生成时机,虽然登陆时不携带 也能成功,但是后面抓取某些其他数据时,需要用到)

码字不易  觉着有用 留个赞 !!!

欢迎 私信交流

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老妖哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值