文章目录
絮叨一下
反爬系列三:登录微博 微博首页
使用技术:base64加密解密、RSA非对称加密
、重定向
往期反爬一:boos直聘:boos直聘
往期反爬二:有道翻译:有道翻译
首先了解一下 两个加密技术:
base64加密的原理:直达链接
RSA非对称加密:直达链接
我是在整体代码中分离,分开说的,分断代码要是有误,可以留言给我我改一下,如果分开看看不明白,可以看一下最后的整体代码,看起来会全面一点。
分析
主页地址:
打开开发者工具(F12)
这里勾选上 Preserve log
以便我们抓取登录前的数据
输入账号密码验证码后点击登录
发现login.php这个应该是登录发送请求的
点进去后发现确实是
重新登录几遍发现几个变化的值
rsakv 、nonce、servertime、pcid、sp这几个值是变化的
1.第一个参数su查找
su 不知到是什么,看起来应该像是账号名 看一下js文件
1.1 js代码
然后搜索su
发现是b 赋值 ,b 是一个base64加密的一个东西,我们可以拿到在线解析网站查看一下
确实是账号名
1.2 python实现
import base64
user = '15645817254'
base64.b64encode(user.encode()).decode()
2.nonce、pcid、rsakv、servertime
这些参数发现是前面的get请求返回后得到的
https://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.19)&_=1592886030619
callback可以省略不写 su 应该是加密后的账号 最后那个应该是时间戳
知道这些就可以构造请求地址了