知乐空间

免权限看qq空间(QQ空间进入)

在qq空之间输入(见QQ空未经允许)

更多Python学习资料可私信关键词【资料】收集

再加一个QQ空 ~之间模拟登录的例子,大家愉快的开始吧~

开发工具

Python版本:3.6.4

相关模块:

请求模块;

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复制代码

所以我们只需要知道以下参数:

actionlogin_sigptqrtoken复制代码

显然,动作应该这样构造:

'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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。

留言与评论(共有 0 条评论)
验证码: