免 IDKEY 跳转(加) QQ 群-Python 实现方案
瞎扯
最近站长在研发一套关于 QQ 的各种跳转的 PHP 项目『forceQ』,名虽有“强制”之意,但受限于越来越严格的制度,现在的跳转特别『温柔』——反而受跳转目标影响。
这个项目作为副站长推荐的练手项目,也是我入坑 PHP 的第一个像样的程序,我应对比较认真,连名字也简短有力!
开发进程较快,但是最近受到一个问题的阻挠——正是今天要讨论的『免 IDKEY 跳转(加) QQ 群』。
正文
要实现这个功能,我们首先需要了解 QQ 群推广链接的组成,一般是跳转接口 + IDKEY。只是现在新版链接里没有 IDKEY 这个参数。。
遂上网搜索相关内容,不过网上相关资源真的少,有的都是五年前的文章。但是根据文章亲手操作,发现旧链接组成方式(带 IDKEY)还可继续使用(还能用多久就不知道了)。
Reference
JAVA——根据QQ群号得到idkey以及QQ群加群链接[网页版本]解决方案_Starzkg的博客-CSDN博客_qq群key怎么获取
实现方式
具体所用操作参考上面的链接,Java 程序和 PHP 程序也可参考上面。只是 Python 作为我入门入了三年(还没进入实践阶段)的语言,加上其在爬虫邻域强大的地位,我很轻松就用 Python 写出来了。
导入模块
访问那个 IDKEY 查询链接需要带上时间戳,所以眼咪咪就
import time
爬虫需要发送网络请求,所以请在确保安装第三方库 requests
的情况下通过下面代码导入它(若没有请通过以下命令安装 pip install requests
):
import requests
接下来需要跳转浏览器打开链接,所以也得导入:
import webbrowser
查询 IDKEY
跳转 QQ 群的链接需要 idkey
参数,那怎么可能省略呢?只是这里我们交给机器处理罢了。
首先是所需链接和必要头部信息。
query_api = "https://qun.qq.com/proxy/domain/shang.qq.com/wpa/g_wpa_get"
headers = {"referer": "https://qun.qq.com/proxy.html?callback=1&id=1"} # 头部信息(溯源为必要)
根据浏览器开发者工具,该链接需要带上参数 QQ 群列表字符串,同时还需带上当前时间戳 * 1000 后取整(不是四舍五入)的值。
group_list = [824697580] # 群列表
group_list = [str(i) for i in group_list] # 将所有元素转换为字符串形式
groups = "%2C".join(group_list) # 将列表元素通过 url 转码的英文逗号串连
# 要求的时间戳为包括小数点后三位的整数
t = str(int(time.time()*1000))
最终需要发起 GET 请求的查询链接如下:
query_url = query_api + "?guin=" + groups + "&t=" + t # 拼接查询地址
resp = requests.get(query_url, headers=headers)
data = resp.json() # 获取到返回数据
接下来就是最后一步——跳转浏览器打开拼接好的链接,给予浏览器跳转打开外部应用的权限就大功告成了:
# 下面就是跳转接口和 QQ 群 idkey 所在索引,其中的数字索引可改(若传入多个 QQ 群)
group_url = "http://shang.qq.com/wpa/qunwpa?idkey="+data['result']['data'][0]['key']
webbrowser.open(group_url) # 跳转浏览器打开链接
END
上面的代码拼凑一下,运行或调试可以触发以下效果:编译器一秒不到就获取到了 IDKEY 并跳转浏览器(等待你手动启动 QQ)并打开相应窗口。但是还有一个前提是不能查询太频繁,若正常网络下出现需等待三秒以上,那么基本需要重来(等几秒)。
附:完整代码
为了吸引一波 GitHub 关注和 Stars ,这里还是放上 GitHub 地址吧!
https://github.com/gkcoll/forceQ/blob/main/forceQ_qqgroup.py
能改 bug 的,fork me!
作者:灰尘疾客
链接:https://www.gkcoll.xyz/446.html
来源:极客藏源
注意:若文章头部无特殊声明,则文章为作者原创,版权归作者所有,未经允许请勿转载(默认允许)。
转载须知:若无特殊说明,本站所有文章均遵循 CC BY-NC-SA 4.0 协议发布,转载、二次创作请遵守该协议内容,并参考以下文案添加转载声明:本文转载自网站 极客藏源 的用户 @灰尘疾客 的文章 《免 IDKEY 跳转(加) QQ 群-Python 实现方案》。本转载文发布遵循与原文相同的 CC BY-NC-SA 4.0 协议。

共有 0 条评论