更多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=izone
ptredirect: 0
h: 1
t: 1
g: 1
from_ui: 1
ptlang: 2052
js_ver: 19112817
js_type: 1
pt_uistyle: 40
aid: 549000912
daid: 5
ptdrvs: AnyQUpMB2syC5zV6V4JDelrCvoAMh-HP6Xy5jvKJzHBIplMBK37jV1o3JjBWmY7j*U1eD8quewY_
has_onekey: 1
复制代码
所以我们只需要知道以下参数就行啦:
action
login_sig
ptqrtoken
复制代码
很显然,action的构造方式应该是这样的:
'0-0-' 时间戳
复制代码
至于login_sig参数,容易发现可以通过请求以下链接: