python3GUI--模拟B站扫码登录By:PyQt5(附下载地址)

本文阅读 4 分钟
首页 安全分享,WEB安全 正文

昨天收到了CSDN的博客之星礼物,在此感谢~ img

本篇使用PyQt5模拟B站扫码登录,实现扫码登录二维码生成,二维码存活判断,登录Cookie处理。

1.产生二维码

程序打开后会产生一个二维码,此二维码是有时效的。 img

2.扫码

程序会在后台判断用户有没有扫描二维码,并且会给予提示。 img

3.登录成功

登录成功后会显示用户昵称以及用户B站头像 img

4.本地cookie文件

登录成功后会在本地产生一个cookies.txt文件,可以使用此文件登录到B站。 img

1.B站登录二维码获取流程

1.1确定二维码数据加载方式 首先打开登录页面

img 箭头所示位置为我们需要的二维码。 在开发者模式下看二维码为Base64编码,并且在一个属性alt为“Scan me!”的img标签中。 img 但是在源代码中找不到这个属性 img 目前可以确定登录二维码的加载方式为异步加载,即通过调用别的接口实现二维码的显示。 1.2确定二维码加载接口 在分析二维码加载过程时,二维码已经过期了,提示我“点击重新获取”,这时候切换选项卡到“Network”中,然后点击“刷新二维码”。 img发现页面上刷新出新的二维码,并且产生了两个异步请求(xhr),点击箭头所示地址查看其响应内容,正是我们所需要的!

https://passport.bilibili.com/qrcode/getLoginUrl

向此接口发送get请求,即可获取到一个oauthKey,以及扫码登录地址(就是扫了二维码相当于访问了这个地址)

1.3确定判断二维码存活接口 根据观察发现,上图中红圈下面的接口正是判断二维码存活接口

https://passport.bilibili.com/qrcode/getLoginInfo

要向此接口轮询发送post请求,携带一个oauthKey,即可判断此oauthKey的状态,结果类似于:

{“status”:false,“data”:-4,“message”:“Can’t scan~”}

其中,值得一提的是响应中的“data”,此data很关键,据笔者观察,此data分四种: 1.-4,此状态为二维码未扫描 2.-5,此状态为二维码已扫描,但是未确认 3.字符串格式,此状态为二维码已扫描,并且已确认,为登录状态 4.-2,此状态为二维码已过期

2.扫码登录实现流程

img

本次使用PyQt5模拟了B站扫码登录,登录成功后会保存cookie到本地可以用作爬虫,整体开发过程不难,UI设计组件不多,代码量也不大,主要还是扫码登录的思路,程序打包好放在了 蓝奏云,仅供学习交流哦。觉得还行的话点个赞吧~ img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/a1397852386/article/details/123914169
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复