qq空间手机网页版登录,qq空间网页版登录入口网址

首页 > 实用技巧 > 作者:YD1662023-11-10 09:09:16

更多Python学习资料可以私信关键字【资料】领取

在返回的cookies里可以得到qrsig这个参数的值:

qq空间手机网页版登录,qq空间网页版登录入口网址(9)

更多Python学习资料可以私信关键字【资料】领取

而请求:

https://ssl.ptlogin2.qq.com/ptqrshow 复制代码

需要携带的参数如下图所示:

qq空间手机网页版登录,qq空间网页版登录入口网址(10)

更多Python学习资料可以私信关键字【资料】领取

除了t其他参数都是不变的,感觉t像个随机数(因为测试了下,发现t就算一直保持不变也没关系),既然影响不大,就懒得继续分析t到底是个啥了,就当是个随机数呗(反正位数也都是16位)。

OK,到此为止,我们大概已经了解了整个模拟登录的流程了,那就开始边写代码边进一步明确该流程呗~首先自然是获得login_sig参数:

params = { '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' } res = self.session.get(self.xlogin_url, headers=self.headers, verify=False, params=params) all_cookies.update(requests.utils.dict_from_cookiejar(res.cookies)) pt_login_sig = all_cookies['pt_login_sig'] 复制代码

然后获得ptqrtoken参数:

params = { 'appid': '549000912', 'e': '2', 'l': 'M', 's': '3', 'd': '72', 'v': '4', 't': str(random.random()), 'daid': '5', 'pt_3rd_aid': '0' } res = self.session.get(self.qrshow_url, headers=self.headers, verify=False, params=params) all_cookies.update(requests.utils.dict_from_cookiejar(res.cookies)) ptqrtoken = self.__decryptQrsig(all_cookies['qrsig']) 复制代码

同时,在请求上述链接的过程中,也就是:

https://ssl.ptlogin2.qq.com/ptqrshow 复制代码

我们还可以获得二维码图片(即res.content其实就是二维码的图片数据),并将其显示出来:

saveImage(res.content, 'qrcode.jpg') showImage('qrcode.jpg') 复制代码

接着我们通过不断请求一开始发现的二维码登录链接,即:

https://ssl.ptlogin2.qq.com/ptqrlogin 复制代码

来检测二维码当前的状态:

while True: params = { 'u1': 'https://qzs.qq.com/qzone/v5/loginsucc.html?para=izone', 'ptqrtoken': ptqrtoken, 'ptredirect': '0', 'h': '1', 't': '1', 'g': '1', 'from_ui': '1', 'ptlang': '2052', 'action': '0-0-' str(int(time.time())), 'js_ver': '19112817', 'js_type': '1', 'login_sig': pt_login_sig, 'pt_uistyle': '40', 'aid': '549000912', 'daid': '5', 'ptdrvs': 'AnyQUpMB2syC5zV6V4JDelrCvoAMh-HP6Xy5jvKJzHBIplMBK37jV1o3JjBWmY7j*U1eD8quewY_', 'has_onekey': '1' } res = self.session.get(self.qrlogin_url, headers=self.headers, verify=False, params=params) if '登录成功' in res.text: break elif '二维码已失效' in res.text: raise RuntimeError('Fail to login, qrcode has expired...') time.sleep(2) 复制代码

若登录成功,则用该请求返回的链接来更新session的cookies从而获得最终的QQ空间登录会话对象:

all_cookies.update(requests.utils.dict_from_cookiejar(res.cookies)) qq_number = re.findall(r'&uin=(. ?)&service', res.text)[0] print('[INFO]: Account -> %s, login successfully...' % qq_number) url_refresh = res.text[res.text.find('http'): res.text.find('pt_3rd_aid=0')] 'pt_3rd_aid=0' self.session.cookies.update(all_cookies) res = self.session.get(url_refresh, allow_redirects=False, verify=False) all_cookies.update(requests.utils.dict_from_cookiejar(res.cookies)) self.session.cookies.update(all_cookies)

END


感谢大家的支持和喜欢,小编会每天分享更多Python学习的干货知识给大家,所以大家别忘了关注小编哦。

更多Python爬虫、数据分析、办公自动化、全栈开发、人工智能学习资关键字【资料】领取

qq空间手机网页版登录,qq空间网页版登录入口网址(11)


作者:戴沐白
链接:https://juejin.cn/post/6953443849482010638
来源:掘金

上一页123末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.