Python 数据可视化 14 | 使用 pycharts 可视化微信好友数据

现在的微信本身已经成为了一个庞大的互联网,几乎所有生活的所需都可以在微信中得到满足,我们每天都在使用微信,你有没有想过,你的微信好友是一个怎么样的存在,接下来就以小帅b的微信为例,一起来使用 pycharts 来可视化一下微信好友的数据。

获取微信好友数据

在 GitHub 上有一个开源的库,叫做 ItChat ,它主要是将微信网页版的请求数据封装成了一个 Python 库,我们只要调用这个库的一些方法,就能做到微信的登录,获取好友数据,发送消息等操作。

ps:因为很多人滥用微信网页版,所以你在使用 ItChat 的时候尽量使用小号,以免造成不必要的麻烦。

另外,你的微信在 https://wx.qq.com(微信网页版)中扫码能够登录才能使用 ItChat 模块。

登录微信

itchat.auto_login(hotReload=True, enableCmdQR=2)

显示二维码登录,微信扫码之后即可登录你自己的微信:

扫码登录成功之后,你可以看到 “Login successfully ” 的字样:

获取微信好友

登录成功之后就可以获取微信好友数据了,调用 itchat 的 get_friends 方法就可以获取到所有好友的信息列表:

我们来格式化一下数据,看下每个字段都是啥意思:

在这里面可以看到一些字段,主要的有这么几个:

参数含义
NickName微信昵称
HeadImgUrl微信头像地址
Sex性别: 1男 2女 0未知
Signature微信个性签名
Province所在省份
City所在城市

提取并可视化微信好友性别数据

因为我们得到的列表中,第一个是自己,所以可以从第二个 user 获取其中的 sexs ,可以使用我们之前说过的 lambda 来获取性别数据:

sexs = map(lambda x:x[‘Sex’], friends[1:])
sexs = list(sexs)

现在得到到的是一个性别数据的列表:

需要统计其中的性别分布的数量,我们可以使用 Counter 进行统计重复项:

from collections import Counter

Counter(sexs)

这样得到的数据一个字典,其中的数据统计好了如下:

这时候需要提取其中的值,然后转成列表:

得到了数据之后就可以可视化了,导入 pyecharts 的相关库:

使用 bar 的形式来可视化微信好友的性别分布:

结果如下:

提取并可视化微信好友地区数据

以同样的方式来获取 provice 中的值:

province = map(lambda x:x[‘Province’], friends[1:])
provinces = list(province)

得到的结果是这样的:

可以发现,有些朋友并没有设置地区,把空字符给去除掉:

provinces = [i for i in provinces if i != ”]

接着我们对各个省份进行数量统计,我们需要统计的是省份名称以及对应的数量,可以将列表转化为集合,然后循环统计:

本文隐藏内容 登陆 后才可以浏览
ok,以上就是小帅b今天给你带来的分享,希望对你有帮助,相关代码我会上传到 Github 上,我们下回见!

3 Replies to “Python 数据可视化 14 | 使用 pycharts 可视化微信好友数据”

  1. kelvinweng说道:

    现在都登录不了了,提示下载客户端了,之前自动发送表情包的那个例子也是进行不下去的。小号大号都试过了。

  2. Charles说道:

    网页版微信已经被腾讯禁用了,为什么你还可以用?

    1. 小帅b说道:

      我的微信一直都可以用,新的微信号和以前违规的微信号不能用

发表回复