利用昨天的QQ群获取的bkn值来获取指定QQ群的群员昵称,然后生成词云图,也可以根据自己的好友列表的昵称生成词云图。
这个就直接上代码了:
代码语言:javascript复制import re
import requests
from matplotlib import pyplot as plt
from wordcloud import WordCloud
# 根据skey获取bkn值
def get_bkn(skey):
e = skey
t = 5381
n = 0
o = len(e)
# www.lanol.cn By:Lan
while n < o:
t = (t << 5) ord(e[n])
n = 1
return t & 2147483647
# 获取好友列表昵称
def getfriendlist(bkn):
url = 'https://qun.qq.com/cgi-bin/qun_mgr/get_friend_list'
data = {
'bkn': bkn,
}
html = requests.post(url=url, headers=headers, data=data).json()
result = html['result']
ids = []
names = []
for i in result:
ids.append(i)
for i in range(1, len(ids)):
a = result[str(ids[i])]
mems = a['mems']
for j in mems:
names.append(j['name'])
return str(names)
# 获取群友名称
def getgrouplist(bkn, groupid):
url = 'https://qun.qq.com/cgi-bin/qun_mgr/search_group_members'
nicks = []
data = {
'gc': groupid,
'st': '0',
'end': '20',
'sort': '0',
'bkn': bkn,
}
html = requests.post(url=url, headers=headers, data=data).json()
nums = html['count']
for i in range(0, nums, 40):
data = {
'gc': groupid,
'st': i,
'end': i 40,
'sort': '0',
'bkn': bkn,
}
html = requests.post(url=url, headers=headers, data=data).json()
mems = html['mems'] # From: www.lanol.cn Author:Lan
for i in mems:
nicks.append(i['nick'])
return str(nicks)
def getresult(words):
words = str(words).replace('nbsp', '').replace(''', '').replace('u3000', '').replace('u202d', '').replace(
'amp', '')
font = 'msyh.ttc'
# From:www.lanol.cn Author:Lan
wc = WordCloud(font_path=font, # 如果是中文必须要添加这个,否则会显示成框框
background_color='white',
width=1800,
height=1080,
).generate(words)
wc.to_file('a.png')
plt.imshow(wc)
plt.axis('off')
input("结果已生成在代码目录下的a.png,
欢迎来我博客转一转www.lanol.cn
回车后退出")
plt.show()
if __name__ == '__main__':
cookie = input("请输入QQ登陆的Cookie值:")
headers = {
'cookie': cookie
}
bkn = get_bkn(re.findall('; skey=(.*?);', cookie)[0])
a = input('1,生成好友列表词云图
2,生成群友昵称词云图
>>>')
if a == '1':
getresult(getfriendlist(bkn))
elif a == '2':
groupid = input("请输入群号:")
getresult(getgrouplist(bkn, groupid))
else:
input("当前功能不存在")
这个一些细节部分根据自己需要然后优化修改一下就行了。
生成的结果图片在软件目录的a.png(自己可以获取群名称,我就懒得改了)
cookie获取方法下次再水一篇帖子。
使用教程:
因为刚刚有人评论不会使用,所以就来一个使用教程吧。
首先呢,你需要有一个python环境,然后需要安装wordcloud模块,request模块以及matplotlib模块
然后再新建一个py文件,将上面的代码全部复制到py文件中,然后运行即可。
Cookie获取方法:
进入这个网站:https://qun.qq.com/member.html
登陆之后,刷新,点击F12,点击XHR,再点击这里面的随便一条记录
找到Cookie,然后将后面的内容全部复制,如图我的这个就是pgv_pvi开始一直复制到2034也就是结尾,这个就是Cookie值