shelbyvv2022年09月20日
373阅读

作品详情

抓取知乎上关于自动驾驶的提问与回答
1、通过抓包发现三个参数比较可以:x-zse-93、x-zse-96、x-zst-81,刷新页面再次查看数据接口参数发现96参数会随着页面刷新发生变化,其他两个值为定值
2、 通过全局搜索x-zse-96参数确定对应JS文件,搜索发现两处均打上断点,调试发现只运行一个,继续分析发现(F(r).encrypt)(f()(s)))可疑,打上断点,刷新调试,通过跟栈进入F(r).encrypt)方法,判断此处参数x-zse-96加密位置(return __g._encrypt(encodeURIComponent(e))),f()为编码函数,s的值为i:101_3_3.0、c:/api/v4/topics/19635352/best_answerers?limit=3、o:"AFAeIjRtgBSPTpSQudQaa4i-eiRP22VxXGM=|1644995945"、x-zst-81字段拼接而成。且S参数经过了MD5加密为16进制。
3、 参数分析完毕抠取,拷贝此生成方法所有JS代码到notepad++,格式化折叠所有代码搜索return __g._encrypt(encodeURIComponent(e)),点击对应花括号,显示开始与结束,按照括号颜色抠取Js
4、 python实现:构建响应请求头,拼接对应s参数,经过处理的s参数要通过MD5加密,调用JS文件传入S参数,再将生成的参数传入请求头发现可以正常请求到数据
5、 接下来就是网页数据提取操作。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论