Python 爬虫进阶必备 | 某外卖平台 token 加密逻辑
网站链接
aHR0cHM6Ly9oNS53YWltYWkubWVpdHVhbi5jb20vd2FpbWFpL21pbmRleC9ob21l
网站分析
搜索的post,提交参数中有一个_token的加密参数
通过搜索关键词_token:有两个文件,在两个文件中搜索token关键字,最终定位到一个js文件内,并在所有的关键词可疑点上都打上断点
然后最终定位到这里,这个n.data._token = (0, c.Z)(n.url, n.data), delete n.appendMTSI);就是加密的位置,我们点进去看js
经过分析,锁定这个A就是加密逻辑的函数
进入到这个函数中,基本确认这里就是加密逻辑的入口函数了
然后我们把js复制下来放在本地去执行分析
js分析
扣下来的js会有很多环境缺失的报错,补上window,document,navigator环境就可以了
这里还有个点,要把这个对象的这两个值也传过来,不然也会报错
直接在js上方手动写死,声明就可以
var Rohr_Opt = Object;
Rohr_Opt.Flag = 101701;
Rohr_Opt.LogVal = "rohrdata";
然后就是在外部去调用函数,直接用window.变量把函数提升到全局作用域,就可以直接在外部去调用了
最后直接在外部,传参调用,就能得到加密后的值了
// 调用:
console.log(window.meituan_token('url参数'))
// 运算结果为:
eJyrViryTFGyMjQwNDcw1FEqSy1SslIy1DPQM1PSUSopBsqYGVuYGhiampubWhrrKCWji1noKCUVhbkoWUUbm5vqWBgaxYIEgoB8hACCZWQCRCAVnkAFSolJ+aUlVkk5iXnZQNuUgOK5IUBxIJ0NpROhdAmM7wt0HlBtcWZ6HpCV6lUREpru6ejonu4YFGhrq1QLAMYrNQY=
小结
这个token不是很难,另外还有一个加密参数,我们下篇文章再说
评论