这种玩法闻所未闻,利用python编程自定义QQ的在线状态
使用
- 安装python3环境
- 安装requests库pip install requests
手机QQ打开网址
- 登录后点击最上面的“设备信息”,记住最后一项“msfImei”的值,填入代码的sIMei那里(可以先截屏然后用QQ的文字识别)
私信小编01即可获取大量python学习资源
- 修改自己想要的机型
- 运行代码,手机QQ扫描生成的QRCode.png并登录
- 查看效果(电脑端登录会覆盖好友看到的在线状态,但是只要电脑端退出并且手机QQ在线就会显示自定义机型)
效果
QQ首页效果
好友视角
python源代码:
-- coding:utf-8 --from requests import Session
Session自动保持cookie,加快连接速度,减少代码量from random import random
[0, 1)的随机数from time import time, sleep
获取时间戳需要用到time,等待用户需要用到sleepfrom re import search
正则匹配from json import loads, dumps
json字符串转python dictinterval = 1
检查登录状态的间隔(s)model = ‘在线但没有完全’
自定义机型sIMei = ‘d4661d1f8561364f’
填入sIMeix = Session()
实例化Sessionr = x.get(f’https://ssl.ptlogin2.qq.com/ptqrshow?appid=549000912&e=2&l=M&s=3&d=72&v=4&t={random()}&daid=5&pt_3rd_aid=0’)
获取二维码with open(‘QRCode.png’, ‘wb’) as f: f.write(r.content)
写入二维码print(‘请扫描二维码!(QRCode.png)’)sig = r.cookies[‘qrsig’]
获取qrsig
计算ptqrtoken, 参考https://www.jianshu.com/p/17ec959b7324e = 0for i in sig: e += e << 5
e += ord(i)token = str(2147483647 & e)while True:
循环检查是否登录
r = x.get(f’https://ssl.ptlogin2.qq.com/ptqrlogin?u1=https%3A%2F%2Fqzs.qzone.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&ptqrtoken={token}&ptredirect=0&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=0-1-{int(time() * 1000)}&js_ver=10291&js_type=1&login_sig=&pt_uistyle=40&aid=549000912&daid=5&’)
接口
data = eval(r.text[6:])
返回数据过滤并转为tuple,以便分析 ‘’’
返回数据r.text示例
未扫码
二维码已失效: ptuiCB(‘65’,‘0’,’’,‘0’,‘二维码已失效。(853563202)’, ‘’)
二维码未失效: ptuiCB(‘66’,‘0’,’’,‘0’,‘二维码未失效。(4087375736)’, ‘’)
已扫码
等待认证: ptuiCB(‘67’,‘0’,’’,‘0’,‘二维码认证中。(3831518952)’, ‘’)
登录成功: ptuiCB(‘0’,‘0’,‘https://ptlogin2.qzone.qq.com/check_sig?pttype=1&uin={QQ号}&service=ptqrlogin&nodirect=0&ptsigx=65cedf5e96324d51637235fa67c4dc7da1254fe840595af1c02cad9f55e8ab37c5cdac262dffafdeeddd812b0e309cc7131f9102b6763185f44096dbadb650a4&s_url=https%3A%2F%2Fqzs.qzone.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&f_url=&ptlang=2073&ptredirect=100&aid=549000912&daid=5&j_later=0&low_login_hour=0®master=0&pt_login_type=3&pt_aid=0&pt_aaid=16&pt_light=0&pt_3rd_aid=0’,‘0’,‘登录成功!’, ‘{QQ昵称}’) ‘’’
code = data[0] # 返回的登录状态代码(str类型)
if code == ‘66’:
print(‘二维码未失效,请扫码登录。’)
elif code == ‘0’:
print(‘登录成功!’)
flag = True
break elif code == ‘67’:
print(‘请在手机上确认。’)
elif code == ‘65’:
print(‘二维码已失效,请重启脚本!’)
flag = False
break
sleep(interval)
等待interval秒if flag:
登录成功
qq = search(r’&uin=(\d+)&service=ptqrlogin’, data[2]).groups()[0]
筛选获取qq号
计算g_tk,参考https://blog.csdn.net/qd_sharon/article/details/23393951 skey = x.cookies[‘skey’]
hash = 5381
for i in skey:
hash += (hash << 5) + ord(i)
g_tk = hash & 0x7fffffff
print(f"您已登录为:
{data[5]}({qq})")
登录提示
x.get(data[2])
跳转返回的验证页面
load = {
需要上传的数据
‘ts’: int(time()*1000),
‘g_tk’: g_tk,
‘data’: dumps({“13031”:{“req”:{“sModel”: model,“iAppType”:3,“sIMei”: sIMei,“sVer”:“8.8.3.5470”,“sManu”:"",“lUin”:int(qq),“bShowInfo”:True,“sDesc”:"",“sModelShow”: model}}}, separators=(’,’, ‘:’)),
‘pt4_token’: x.cookies[‘pt4_token’]
}
r = x.get(‘https://proxy.vac.qq.com/cgi-bin/srfentry.fcgi’, params=load).json()
请求接口
if r[‘ecode’] == 0: print(‘修改成功!’)
else:
print(‘修改失败!以下为返回数据:’)
print®input(‘运行结束!’)
这种玩法闻所未闻,利用python编程自定义QQ的在线状态相关推荐
- 连连看不一样的玩法,利用python进行图片相似度计算
先放制作好的游戏视频链接:(纯粹是兴趣分享) 连连看不一样的玩法-图像相似度识别-python_单机游戏热门视频 https://www.ixigua.com/7076826558106698253? ...
- Redis高级玩法之利用SortedSet实现多维度排序的方法
说明:本次实践基于Redis版本3.2.11. 关于SortedSet 首先,我们都知道Redis的SortedSet是可以根据score进行排序的,以手机应用商店的热门榜单排序为例,根据下载量倒序排 ...
- Python:利用python编程实现三维图像绘制展示(六面体旋转、三维球柱状体、下雪场景等)
Python:利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 目录 利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 1.实现六面体旋 ...
- Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图.热图可视化 目录 上海十六区,2020年5月份房价实时地图(数据来源房天下)可视化 雷达图.柱 ...
- pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存
pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存 目录 输出结果 代码实现 输出结果 代码实现 # -*- codi ...
- 利用python绘制自定义棋盘格
相机标定需要用到棋盘格,故利用python绘制自定义棋盘格 参考了站内代码,自己进行了修改,可以自定义棋盘格长宽和方块大小,并保存为图片. 安好numpy和opencv 拿来就能用. import n ...
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 目录 利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 1.先下载ff ...
- 在jupter中利用Python编程查看pkl文件内容的步骤
pkl文件是python保存文件的一种格式. 下面以 test.pkl 文件为例,展示在jupter中利用Python编程查看pkl文件内容的步骤. 一.查看Python代码所在的文件夹 import ...
- python 循环播放音乐_pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件...
基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 T1.while循环输出数据流的方法def play(): chunk=1024 #2014kb wf=wave.open( ...
最新文章
- 蜘蛛搜索引擎_各大搜索引擎的蜘蛛特点
- Android跳转intent简单教程
- 【渝粤教育】广东开放大学 社会调查与方法 形成性考核 (35)
- Asterisk 并发量到100后就出现拨打电话挂机问题
- Python被誉为神奇的“胶水语言”,到底神奇在哪?
- 基于vue2.0与追书神器api的小说阅读webapp
- Android学习分享:执行某ViewGroup的动画时,子控件太多导致动画执行卡顿的问题...
- 安卓电视盒子上 安装 Ubuntu 20.04 并安装 certbot 获取证书
- 如何用 nginx 做 postfix 的 SMTP 反向代理,以及 XCLIENT 的支持
- windows 编程入门资料
- dns被劫持怎么办,电信dns劫持解决办法
- HTML嵌入百度地图
- HTML(hiden控件 readonly disabled)(maxlength属性)(id属性重点)
- 永中word页码怎么从第二页开始_快捷的word文档转pdf好方法推荐
- windows7英文版变成中文版教程
- OFPPT-CTF 2022 部分writeup
- 网站建设项目流程概述
- 地理信息产业总产值今年将达2600亿元
- [Luogu P2713] 罗马游戏
- [转]BLDC电机控制算法是很难 那是你没搞清原理
热门文章
- git merge用法_Git 基本命令 merge 和 rebase,你真的了解吗?
- access订单明细表怎么做_图书销售订单明细表 (4)
- 算算是第几天的C语言程序,计算当日是该年的第几天---C语言
- linux的idle命令,DBA 常用Linux命令
- mybatisplus查询今天的数据_Spring系列——MybatisPlus
- java shiro登录实例_使用Shiro实现登录成功后跳转到之前的页面
- Linux通过SSH实现免密登录
- c语言程序设计案例教程肖利群,C语言程序设计案例教程
- java nio 系列教程 四_Java NIO系列教程(四) Scatter/Gather
- defaultvalue默认显示 请选择_使用Jenkins Git参数实现分支标签动态选择