基于Python的微信好友男女比例,区域排名,签名情感分析

Posted newlw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Python的微信好友男女比例,区域排名,签名情感分析相关的知识,希望对你有一定的参考价值。

wechat

微信好友男女比例,区域排名,签名情感分析

程序备注技术栈
微信好友性别占比采集微信好友性别比例并绘制饼图itchat, matplotlib
微信好友头像采集微信好友头像并拼接大图itchat, math, PIL
微信好友地区分布采集微信好友区域分布并分别制作省会和城市Top10柱形图itchat, matplotlib
微信好友个性签名情感分析采集微信性别比例并绘制饼图itchat, matplotlib, jieba, numpy, snownlp, wordcloud
微信群好友统计采集微信群好友信息itchat, matplotlib, PIL

1、微信登录

import itchat

itchat.auto_login(hotReload=True)
itchat.dump_login_status()
we_friend = itchat.get_friends(update=True)[:]

返回的结果we_friend是微信好友的基本信息列表, 单个好友字典的 key 如下表:

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

2、微信好友性别占比

通过统计好友人数、男生女生各多少人算出好友性别占比,再绘制饼图。

3、微信好友头像

  • 首先需要把好友头像保存在同一目录

  • 设定最后拼图的大小,以及每行需要拼接几个头像,这里我采用图片的面积除以图片的张数

each_size = int(math.sqrt(float(640 * 640) / len(ls)))  # 算出每张图片的大小多少合适
lines = int(640 / each_size)
image = Image.new('RGBA', (640, 640))   # 创建640*640px的大图

4、微信好友地区分布

  • 由于地区太多,故使用Python sorted函数进行排序,对地区和城市Top10进行柱状图展示

通过区域和城市人数排名,其实大致看出你的户籍所在地和工作地点了。

5、微信好友个性签名情感分析

这里主要做了两部分

  • 第一部分使用jieba分词对好友个性签名进行切词,并制作词云图,这里的词云图背景使用比较火的小猪佩奇

  • 第二部分使用snownlp对好友的签名做一个简单的情感分析

通过饼图来推测我的好友大多数正向情感要高于负向情感。

6、微信群好友统计

之前加了一个中产互助社群,群成员既有一线京沪广深、二线杭宁苏夏,成渝武郑,也有四五七八线地级市县以及国外的朋友,群里刚好讨论了一个话题《三到五年后离开北上广的有多少打算的》,借此机会统计下目前有多少在一线工作,3年后会再次统计一波

群聊用户列表的获取方法为update_chatroom

  • 同样,如果想要更新该群聊的其他信息也可以用该方法
  • 群聊在首次获取中不会获取群聊的用户列表,所以需要调用该命令才能获取群聊的成员
  • 该方法需要传入群聊的UserName,返回特定群聊的详细信息
  • 同样也可以传入UserName组成的列表,那么相应的也会返回指定用户的最新信息组成的列表
import itchat
memberList = itchat.update_chatroom('@@abcdefg1234567', detailedMember=True)




性别比例这里就不再提,群内好友人数分布从图片中可以清晰看到Top3是北京、上海、深圳,的确如此。对于普通人来说,大城市发展的机会、空间、市场、机遇、机会都会比小城市大的多。

以上是关于基于Python的微信好友男女比例,区域排名,签名情感分析的主要内容,如果未能解决你的问题,请参考以下文章

如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例

如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例

利用Python网络爬虫抓取微信好友的签名及其可视化展示

利用Python网络爬虫抓取微信好友的签名及其可视化展示

python统计自己微信好友并抓取信息

10分钟教你用Python玩转微信之抓取好友个性签名制作词云