美团店铺详情_token参数
网址 :https://sh.meituan.com/meishi/c17/
可以在请求地址 找到 getPoiList 的请求链接,请求参数有多个,但是多次请求对比发现只有 token 参数是变化的
现在来分析 _token 参数
- 看到 getPoiList 请求是 xhr 的ajax发起的请求,我们可以直接在浏览器打上 xhr 的断点,刷新页面会直接断下
- 断在 JS 后,查看浏览器的调用栈,精准的找到 发起请求的JS方法
- 找到 JS 方法后 在分析,JS发起请求的参数,再进一步分析参数的由来
- 找到参数后,继续找到生成参数的方法,把生成参数的JS扣出来,
- 直接执行扣出来的JS方法,填补环境和变量,测试调用 得到加密的结果 参数即可
XHR 断点 :
_token: d 这里可以看到 _token是由 d 赋值而来,d = window.Rohr_Opt.reload(p) d 又是 这个方法的返回值,在找 传递的参数 P,一步一步往上分析,
扣JS代码:
1. 如果看参数生成方法 比较简单简单,就直接把生成参数方法 复制出来就好,
2. 这个生成的参数方法 一层套一层,就直接一把梭哈,在补环境
进入新的 js文件后,发现是个自执行函数,那就是 估计是给 window.Rohr_Opt.reload 传值了,供外部这个JS执行此方法,
这里真好发现 赋值的操作,把 iP.reload 方法 赋值给 Rohr_Opt.reload 了
补环境:
1. 直接执行 JS,这里方便 测试就用 node 执行了 参考博客
2. 确实的变量先去 浏览器断点打印,把变量复制到 本地js 补缺环境
截图没补全 : 应该这样写
var Rohr_Opt = Object;
Rohr_Opt.Flag = 100900;
继续补环境,直到没有报错
补完环境后 :
1. 自己写个方法,供python代码调用
2. 测试 打印出的参数
撸代码:
代码测试 一波,ok,
最后发现 生成 _token的时候好像有延迟,可以在改进改进,修改JS
- 美团需要账号登录才能查看数据,代码测试复制 cookie
- 频繁访问可以会对账号有限制,异常