当前位置:网站首页 > 更多 > 编程开发 > 正文

[Python] 自动获取群员名称并用群员名称生成词云图,生成QQ好友列表昵称词云图

作者:CC下载站 日期:2020-06-01 00:00:00 浏览:55 分类:编程开发

利用昨天的QQ群获取的bkn值来获取指定QQ群的群员昵称,然后生成词云图,也可以根据自己的好友列表的昵称生成词云图。

这个就直接上代码了:

importre

importrequests
frommatplotlibimportpyplotasplt
fromwordcloudimportWordCloud


#根据skey获取bkn值
defget_bkn(skey):
e=skey
t=5381
n=0
o=len(e)
#www.lanol.cnBy:Lan
whilen<o:
t+=(t<<5)+ord(e[n])
n+=1
returnt&2147483647


#获取好友列表昵称
defgetfriendlist(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=[]
foriinresult:
ids.append(i)
foriinrange(1,len(ids)):
a=result[str(ids[i])]
mems=a['mems']
forjinmems:
names.append(j['name'])
returnstr(names)


#获取群友名称
defgetgrouplist(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']
foriinrange(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.cnAuthor:Lan
foriinmems:
nicks.append(i['nick'])
returnstr(nicks)


defgetresult(words):
words=str(words).replace('nbsp','').replace(''','').replace('u3000','').replace('u202d','').replace(
'amp','')
font='msyh.ttc'
#From:www.lanol.cnAuthor: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,生成群友昵称词云图
>>>')
ifa=='1':
getresult(getfriendlist(bkn))
elifa=='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值

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯