文章插图
更多Python学习资料可以是私人关键词【资料】领取
前言让我们添加一个模拟登录QQ空间的例子~ , 让我们快乐地开始吧~
开发工具Python版本:3.6.4相关模块:requests模块;
pycryptodome模块;
还有一些Python独立模块 。
环境建设安装Python并添加到环境变量中 , pip安装所需的相关模块 。
原理简介这里 , 下面简单介绍一下模拟登录QQ的空间原理 。一般地 , QQ空间可以通过手机访问QQ扫码登录和账号密码登录 。但账号密码登录有时需要验证码 , 为了保证登录的成功率 , 我们选择扫码登录方式 。
首先 , 进入登录界面:
'https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https://qzs.qq.com/qzone/v6/portal/proxy.html&daid=5&&hide_title_bar=1&low_login=0&qlogin_auto_login=1&no_verifyimg=1&link_target=blank&appid=549000912&style=22&target=self&s_url=https://qzs.qq.com/qzone/v5/loginsucc.html?para=izone&pt_qr_app=手机QQ空间&pt_qr_link=https://z.qzone.com/download.html&self_regurl=https://qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=https://z.qzone.com/download.html&pt_no_auth=0'复制代码
简单抓一下包就能发现二维码登录的界面大概就是这个(ptqrlogin看起来像是二维码登录):文章插图
更多Python学习资料可以是私人关键词【资料】领取
让我们看看请求这个链接需要什么参数:
文章插图
更多Python学习资料可以是私人关键词【资料】领取
测试一下 , 可以找到大多数参数是固定的 , 即:
u1:https://qzs.qq.com/qzone/v5/loginsucc.html?para=izoneptredirect: 0h: 1t: 1g: 1from_ui: 1ptlang: 2052js_ver: 19112817js_type: 1pt_uistyle: 40aid: 549000912daid: 5ptdrvs: AnyQUpMB2syC5zV6V4JDelrCvoAMh-HP6Xy5jvKJzHBIplMBK37jV1o3JjBWmY7j*U1eD8quewY_has_onekey: 1复制代码
所以我们只需要知道以下参数:【qq空间登陆 qq空间登陆登录电脑版】
actionlogin_sigptqrtoken复制代码
很显然 , action建筑的方式应该是这样的:'0-0-'+时间戳复制代码
至于login_sig参数 , 通过请求以下链接可以轻松找到:文章插图
更多Python学习资料可以是私人关键词【资料】领取
然后在返回的cookies里得到login_sig参数:
文章插图
更多Python学习资料可以是私人关键词【资料】领取
而请求:
https://xui.ptlogin2.qq.com/cgi-bin/xlogin?复制代码
所需的参数是:文章插图
更多Python学习资料可以是私人关键词【资料】领取
通过测试 , 可以找到上述参数是固定的 。最后 , 只有ptqrtoken这个参数 , 全球搜索 , 可以找到ptqrtoken这个参数在一定范围内js计算方法写在文档里:
文章插图
更多Python学习资料可以是私人关键词【资料】领取
其中 , hash33的js代码为:
function hash33(t) {for (var e = 0, i = 0, n = t.length; i < n; ++i)e += (e << 5) + t.charCodeAt(i);return 2147483647 & e}复制代码
转为python代码是:def decryptQrsig(qrsig):e = 0for c in qrsig:e += (e << 5) + ord(c)return 2147483647 & e复制代码
那么 , 现在的问题是qrsig这个参数怎么取?和login_sig参数相似性 , 很容易找到 。请求以下链接:文章插图
更多Python学习资料可以是私人关键词【资料】领取
在返回的cookies可以在中获得qrsig该参数的值:
文章插图
更多Python学习资料可以是私人关键词【资料】领取
而请求:
https://ssl.ptlogin2.qq.com/ptqrshow复制代码
所需的参数如下图所示:
- 宝来和卡罗拉哪个车空间大、宝来和卡罗拉哪个耐用
- 试驾2022款沃尔沃V90,外观大气,空间实用
- linux查看正在登录的用户 linux查看系统关机原因
- 北京自主择业干部网 全国自主择业个人登录网址是什么
- 湖南省施工图管理信息系统登录 湖南省审图管理系统何军
- 国土空间规划三区三线内容是什么 乡镇国土空间规划主要内容
- 爱奇艺会员可同时登录几个设备 爱奇艺会员可以同时登录几个设备
- 什么游戏不用登录就能玩 免费又不用登录的游戏
- cf账号异地封号10年去哪申冤 cf异地登录封号10年怎么申诉
- 单位车二维码生成登陆平台