200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 基于Python的微信朋友圈数据可视化分析之个性签名

基于Python的微信朋友圈数据可视化分析之个性签名

时间:2021-05-13 20:13:11

相关推荐

基于Python的微信朋友圈数据可视化分析之个性签名

需求

利用 Python 爬取微信朋友圈的个性签名,通过生成词云的方式对朋友圈的关键词进行可视化的分析。

思路

经过调研发现,通过itchat这个第三方的包,再结合人工扫码授权的方式可以直接调用微信的接口,从而获取到朋友圈的所有信息。

依赖包

直接在 Python 环境下运行源代码,提示缺啥就补啥呗

安装包的命令

pip install 包名

itchat 中微信好友信息常见字段分析

通过itchat获取到的微信好友信息的格式是dict字典格式,其中的含义在官方文档中也没有详细地说明,此处记录一些常见的含义如下:

"Uin": 0,"UserName": 用户名称,一个"@"为好友,两个"@"为群组"NickName": 昵称"HeadImgUrl":头像图片链接地址"ContactFlag": 1-好友,2-群组,3-公众号"MemberCount": 成员数量,只有在群组信息中才有效,"MemberList": 成员列表,"RemarkName": 备注名称"HideInputBarFlag": 0,"Sex": 性别,0-未设置(公众号、保密),1-男,2-女"Signature": 公众号的功能介绍 or 好友的个性签名"VerifyFlag": 0,"OwnerUin": 0,"PYInitial": 用户名拼音缩写"PYQuanPin": 用户名拼音全拼"RemarkPYInitial":备注拼音缩写"RemarkPYQuanPin": 备注拼音全拼"StarFriend": 是否为星标朋友 0-否 1-是"AppAccountFlag": 0,"Statues": 0,"AttrStatus": 119911,"Province": 省"City": 市"Alias": "SnsFlag": "UniFriend": 0,"DisplayName": "","ChatRoomId": 0,"KeyWord": "EncryChatRoomId": ""

源代码

注意:运行的时候,需要准备好手机微信,扫码确定登录!

# coding:utf-8import itchatimport reimport jieba # jieba分词# wordcloud词云import matplotlib.pyplot as pltfrom wordcloud import WordCloud, ImageColorGeneratorimport osimport numpy as npimport PIL.Image as Imageimport pandas as pditchat.login()friends = itchat.get_friends(update=True)[0:]# 将朋友列表的所有信息保存至本地文件中# pd.DataFrame(friends).to_csv(u"wechat_friends_info.csv")tList = []for i in friends:signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")rep = pile("1f\d.+")signature = rep.sub("", signature)tList.append(signature)# 拼接字符串text = "".join(tList)wordlist_jieba = jieba.cut(text, cut_all=True)wl_space_split = " ".join(wordlist_jieba)d= os.path.dirname(os.path.abspath( __file__ ))alice_coloring = np.array(Image.open(os.path.join(d, "wechat.png"))) # 生成词云的基础图片my_wordcloud = WordCloud(background_color="white", max_words=2000,mask=alice_coloring,max_font_size=400, random_state=420,font_path='C:\Windows\Fonts\msyhl.ttc').generate(wl_space_split)image_colors = ImageColorGenerator(alice_coloring)plt.imshow(my_wordcloud.recolor(color_func=image_colors))plt.imshow(my_wordcloud)plt.axis("off")plt.show()

“努力”的朋友圈

通过分析本人朋友圈的个性签名所得到的词云图最终如下图所示,不难看出,“努力”是我朋友圈的核心词,我为自己能拥有这么多优秀的朋友而感到开心,物以类聚,人以群分,我一定好好努力,向你们学习。

关于词云

可以参考我之前的一篇文章 《用QQ聊天记录生成一个词云》

参考文献

python笔记:将字典存储为csv格式利用Python爬取朋友圈数据,爬到你开始怀疑人生itchat 微信好友信息字段含义

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。