记录一次爬虫破解参数过程
入口:助手个人中心 -- https://www.jidaihome.com/officer/#/login
输入账号。输入密码
打开谷歌浏览器F12
再点击登陆
NetWork里看见请求:


然后用代码模拟请求,尝试有哪些请求参数是必须要的。
会发现:
Headers里:有个 Authorization
Request payload 下: 很长一堆字符串
并且:这两个参数必须同时对应才会返回正确结果
相关内容:
python爬虫如何POST request payload形式的请求: --> data=json.dumps(dict)
python爬虫如何POST FormData形式的请求:data=dict
参考:https://blog.csdn.net/zwq912318834/article/details/79930423
Authorization:访问权限 ?
破解Authorization:
全局搜索Authorization 关键字:

发现只有一个地方有,点击打开此技术文件,点击{} 格式化一下,在此js文件里搜索 Authorization 发现

发现可疑点,在此处打断点,重新点击下登录按钮,进入js调试过程,此时选中红色小方框,会显示出结果

发现和此结果和 network里headers里的Authorization值一样,所以Authorization值应该就是此方法返回的
然后鼠标放到选定的红色小方框内

发现弹出来一个方框,里边有个函数,点击进去进入到这个函数(也可以点击

进入此函数)
进入此函数后发现:

同样方法,选中绿色方框内容,会显示一个值,发现和network里的值一样,那就是这个函数最终生成并返回的值就是Authorization值。
仔细看会发现需要传入一个参数t,也就是上一步传入的参数r,不确定的话可以,选中t,看t值,选中r,发现两个值一样。

接下来需要解析 r,发现

r即是此函数生成,点击进去

发现就是下边这个函数生成的,需要传入参数t,t是固定值16,至此,最终函数所需要的参数r已经生成。

最终生成 Authorization 参数。
破解request payload:
发现并没有关键字可以让我们搜索,但是却发现

这两个的值看起来比较像,那么此时可以测试一波,用代码模拟请求,传入同一次调试时生成的Authorization值和i值,会发现可以正确响应结果,那么request payload的内容就是i值。接下来就解析此i值怎么生成。

参考:AES加密
https://mp.csdn.net/postedit/97019532
https://blog.csdn.net/chouzhou9701/article/details/89339625
最后:
还有个小问题:password其实是加密过的,可以先大概猜测下,因为它长度32为,猜测为MD5加密,接下来还用以上调试方法,继续调试此password怎么生成就欧克了,在此,就不多说了。
至此,全部参数就解析出来了,组合一下,写进代码就ok了
附:js调试工具
链接:https://pan.baidu.com/s/1yPwGfgR7TcbeYpgmNbHqgg
提取码:0nwn
链接:https://pan.baidu.com/s/1AAC6Li92xUd8cMDjARrmbQ
提取码:xj3f

浙公网安备 33010602011771号