这次我们直奔主题,本文要做的是以下几件事:
准备
还是老样子,做实验前,先做好准备工作,实验环境如下:
1.Python3.6(虚拟环境的管理为Pipenv)
2.Pycharm
3.主要使用到的包有:
大家获取到源码之后只需要将Pipfile复制到你们的项目根路径下,然后再终端执行pipenvinstall即可创建一个安装好所有包的虚拟环境了(前提是你的电脑上已经安装了pipenv了)
做好准备工作后我们就开始吧。
开始1.初始化itchat
只需一行代码即可初始化itchat:
2.获取好友列表
同样的也只需要一行代码即可获取:
返回的数据是类JSON格式的,我们用Python可以很方便的解析,因为篇幅原因,返回的示例我就不展示了,你们自己输出查看就可以了。
3.分析男女分布情况
首先我们需要获取好友的性别信息,通过分析返回的JSON字符串我们发现,在好友的信息中有Sex标签,其规律是当其值为1是表示男生,2表示女生,0表示没有填写的,因而我们可以这样
执行的结果为:
更加直观的显示如下(可视化的代码在utiils包下,这里就不放出了,有需要的自己看源码):
4.好友地域分布
这里我们只要获取到好友的地域信息,然后用两个dict(分别是省和市)保存即可,key为地域,value为该地域的好友数,循环遍历friends最后用饼图表示分布最多的5个省,用柱状图表示分布最多的15个市,代码如下:
结果如下:
看到这大家应该也能猜到我主要的活动区域是哪了吧,有兴趣的大家可以猜一猜然后在文末留言哦。
5.好友情感分析
他的用法也很简单,安装好baidu-aip包之后,申请下appkey、appid和secretkey后即可使用:
因此我们要做的无非就是获取好友的签名,然后传入analyze_text函数即可:
看到这有人会有疑问了,我的好友人数有上千,免费的接口能用这么多次吗?事实上,他真的可以用这么多次
看到这我突然想给百度打call,这也太良心了吧。请问贵公司还缺实习生吗,我想去应聘。然后我们来看看我的好友的情绪分析图吧。
没想到我的好友里面竟然还有17.83%的人有消极情绪,看来必要的时候得"weneedtotalk"了。
看标题你们可能不懂是什么意思,直接放图你们就明白了:
接下来我们来看看如何生成上述图片。
第一步,我们先获取好友的头像:
也很简单,直接调用itchat的get_head_img方法然后保存到本地指定文件夹下即可。
第二步,利用photomosaic生成目标图片
四行代码即可,原理的话知乎上有写,有兴趣的可以自己去搜一搜。
最后
方法教给大家了,图片素材可以优化,大家可以生成自己喜欢的蒙太奇图片,发到朋友圈,让代码骚动起来吧!