利用昨天的QQ群获取的bkn值来获取指定QQ群的群员昵称,然后生成词云图,也可以根据自己的好友列表的昵称生成词云图。
这个就直接上代码了:
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值
还是不会用
哦哦,我再把教程写一下,然后我看看能不能打包一下