用 python 分析了微信上所有的微信好友,发现了一个秘密...

最近研究了一下itchat和matplotlib,目前实现了对微信好友头像、性别、区域、个性签名的采集及展示。

本文就来详细介绍一下这个库的用法和一些核心逻辑实现。

1.微信登录

  • 三行代码实现登录,为了避免我们频繁扫描二维码登录,这里我们加入hotReload=True
  • 好友信息获取

这里的we_friend是好友的信息的列表,每一个好友字典的 key 如下表

key 备注
UserName 微信系统内的用户编码标识
NickName 好友昵称
Sex 性别
Province 省份
City 城市
HeadImgUrl 微信系统内的头像URL
RemarkName 好友的备注名
Signature 个性签名

有了key对应的值,我们就好处理了。

2.好友性别

这里顺便提一下:如果sex=1则代表男性,sex=2代表女性

用 python 分析了微信上所有的微信好友,发现了一个秘密..._第1张图片

统计出男生、女生的以及总人数后,占比自然而然就出来了,为了更好的展示男女比例,我们以饼图展示。

  • 绘制饼图
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第2张图片
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第3张图片

作为一个码农、程序猿,还能有这么多女性好友实属不易啊。敏感的我,看了这个比例深深地感觉到了不安,(此图女朋友不可见)另外,怎么还有一些未知生物的存在…


友情提醒:matplotlib中文乱码这个问题一直存在,这里记录下如何解决matplotlib中文乱码

  • 准备好想要使用的中文字体,这里我用的是SimHei,附下载地址:中文字体下载

  • 找到matplotlib的文件位置

  • 进入上方打印的路径

  • 把刚才下载的字体文件解压放入/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf 目录

  • 返回上级目录,修改matplotlibrc文件,取消相关注释,并在font.serif加入刚才下载的字体

  • 删除matplotlib缓存。
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第4张图片

3.微信好友头像

这里其实看过我之前文章的应该知道,其实头像的拼接主要分为两部分

  • 1.采集所有好友头像保存本地,
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第5张图片
  • 2.对所有头像进行拼接
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第6张图片

密集恐惧症患者请忽略!!!

4.微信好友地区分布

获取区域及城市

用 python 分析了微信上所有的微信好友,发现了一个秘密..._第7张图片

由于城市太多,我们取好友数量排名前十的城市及区域进行展示,感兴趣的可以稍微改下代码,就可以展示所有区域人数。

排序这里我用了Python的sorted()函数,列表的每个元素都为二维元组,key参数传入了一个lambda函数,其x就代表列表里的每一个元素,然后分别利用索引返回元素内的第一个和第二个元素,这就代表了sorted()函数利用哪一个元素进行排列。而reverse决定是正序还是倒序,默认为False。

  • 区域、城市柱形图展示,由于思路代码是一致的,所以这里只展示区域的代码
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第8张图片
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第9张图片

通过柱形图展示,可以清晰看到我的好友主要分布在河南和上海,借此不难推测出我的工作地址以及户籍所在地。

5.微信好友个性签名情感分析及词云图展示

这里使用了常用的中文分词库jieba,词云图的背景采用了萌萌哒小猪佩奇(´๑•_•๑)

  • 分词
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第10张图片
  • 制作词云图
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第11张图片
用 python 分析了微信上所有的微信好友,发现了一个秘密..._第12张图片

最初,只想做一个简单的词云图,但是看到这个词云图中梦想、努力、专注、尊重、希望这个几个词以后,感觉到我的好友生活态度还是蛮积极向上的,就想不如再做一个简单的情感分析,说干就干。

用 python 分析了微信上所有的微信好友,发现了一个秘密..._第13张图片

从图中可以看出,正向情感要远远多于负向情感的数据,积极乐观的人往往都在一个圈子,果然是物以类聚,人以群分啊。

你可能感兴趣的:(用 python 分析了微信上所有的微信好友,发现了一个秘密...)