百度模拟登录
2018-04-02 本文已影响0人
王明明151
应用环境
python3.6+pycharm+windows7+requests
过程分析
1. 查看登录需要的参数
对比分析得知 : token:令牌 要获取 tt:时间戳 gid:也要获取 username: 用户名 password : 加密后的密码 rsakey: 密钥 verifycode :验证码 callback :随机的值 fp_uid ,fp_info , ppui_logintime都可以用第一次提交时的参数可以固定
2.参数获取
token:
搜索token即可
可以看出是返回值
tokenUrl ='https://passport.baidu.com/v2/api/?getapi&tpl=mn&apiver=v3&tt={}&class=login&gid={}&loginversion=v4&logintype=dialogLogin&traceid=&callback={}'.format(时间戳,gid,callback)
现在要获取gid和callback
gid:
会出来好几个js都下载到本地 然后再进行搜索
js中搜索到的再搜索guideRandom
可以看出是把xxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx 替换出来的
python方法
callback:
callback和gid 是同一个js文件
再搜索 getUniqueId
pytho模拟一下
python方法:
python方法
获取token:
已经有了 callback 和gid 去请求 token
正则匹配出来即可
密码加密:
在第一步可以发现密码是加密后的 大多数都是用的rsa 加密
那么要先获取pubkey,直接搜索
找到url
匹配出 pubkey,rsakey
密码加密
获取验证码
获取验证码要先获取 vcodetype 这个值应该是决定验证码的类型 中英文
返回值:
找出 vcodetype 和 codeString
利用 codeString 去请求验证码 保存到本地 识别后输入验证码
识别验证码
登录:
不同返回值的意义: