爬虫-反爬三:requests + python 实现微博登录

本文介绍了如何使用Python的requests库实现微博登录,涉及base64加密、RSA非对称加密以及验证码处理。通过分析登录过程,获取su、nonce、pcid、rsakv、servertime等参数,并实现相应步骤的Python代码,最终成功登录并获取完整cookies。
摘要由CSDN通过智能技术生成

絮叨一下

反爬系列三:登录微博 微博首页
使用技术: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 应该是加密后的账号 最后那个应该是时间戳

知道这些就可以构造请求地址了
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Artisan_C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值