easyui数据请求两个url_2020浙大信息化年度数据账单中的code参数分析

从去年年末开始,各大APP就开始给用户推送他们的「年度报告」。很快啊,朋友圈就被网易云、QQ音乐、B站的年度报告刷屏了。说起来还挺矛盾的,人们一边为自己的信息泄露而焦虑着,一边又享受着别人分析自己数据。今天吃完板烧鸡腿堡出来在群里看到好多人在讨论浙大出的这个信息化年度数据账单,然而并没有什么有价值的数据。

下午摸鱼的时候稍微分析了一下接口,不复杂,但是因为想当然浪费了很多时间。

网址:

https://it2020.zju.edu.cn/
一个小坑:访问 https://it2020.zju.edu.cn/会跳转到实际的页面 https://it2020.zju.edu.cn/share,但是直接访问 https://it2020.zju.edu.cn/share则会跳转到微信推文的页面。用浏览器随便抓一下包,容易看出所有的数据都包含在这条POST请求的响应中:
6aa86ac05c021692a90553b2932db8b0.png
这个请求有两个参数,其中 redirect_uri为固定参数,我们只需要找到 code这个参数就好了。之前写浙大通行证模拟登录的时候就发现登录时会发送多个状态码为302的重定向请求:
7d32ecf098d46d3d2e13a495d7e83a3c.png
数据获取失败
这里重定向的过程是通过如下方法获得的:
# 登录
resp = s.post(......)
for r in resp.history:
  print(r.status_code, r.url)
因为这里最后一次重定向请求的URL中包含一个ST开头的 ticket参数,我就想当然的觉得我们需要的 code参数就是这个。然而把这个 ticket参数的值扣下来赋值给 code,然后发送POST请求,得到的响应为「 500 Internal Server Error」。我只好按部就班地沿着请求列表向上找,希望能找到 code参数的来源。一番攀谈交心了解到, code参数和上面一个302重定向的请求中的 ticket参数相同:
75318983a714f3687dcae163d877e581.png
而这个请求是由登录的POST请求重定向而来的:
4d607f7749e4447e38af7b7e4b7db50c.png
到这里,解决办法就很显然了——把登录时的URL稍作调整即可。把每一次重定向的过程都print出来,可以看出,在登录过程中,有两个重定向URL都包含 ticket这个参数,但是它们的值是不一样的,第一个 ticket的值才是我们想要的 code参数的值。
49825d3bf6f86ed5595d242615d0f2f0.png
数据获取成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值