--- 我的微信好友数据分析
这张图是我所有的微信好友,之前你们大部分不能互相看到,在这里,终于可以相互看一眼了。最后4个是虚位以待。
是不是有点密集恐怖。如果觉得头像有暴露隐私,侵犯肖像或带来其他不适,可以留言简信给我打码、抠出。前天我把这个图片发到朋友圈,大家留言也特别有意思,有的人说我一秒就找到了自己,也有很多人想了解图片是怎么做出来的。
知乎上有一篇文章@路人甲的《Python对微信好友进行简单统计分析》,介绍了用Python抓取微信通讯录数据进行分析。看到了觉得十分有趣。
上周看到@龙潇 写了一篇文章 《抖机灵教程 | 数据化看你的朋友圈》,用了一个第三方工具抓取了微信好友数据,似乎不太安全。
来说说我的方法,基本上还是@路上甲 提供的代码。他在文章中写到也是受到一位大神之前写的代码启发。我只添加了少量代码和另外的一些功能。
爬虫模拟登录微信网页版
https://login.weixin.qq.com/
用手机微信扫码即可登录。不存在安全问题。原代码比较完整,改一下路径即可。爬取的数据包括:昵称、性别、微信号、城市、个性签名、备注、分组星标,微信头像。我增加了一个字段-个性签名,另外抓取中把数据直接写到csv文件。
(替换)对抓取到的头像用Face++进行年龄分析
原文章中用了opencv进行头像图片类别分析,判断头像是不是人像照片。由于我在安装opencv时碰到一些问题,安装好了又遇到与numpy的匹配问题。于是采用了Face++进行头像分析。
文章见:《Face++头像检测分析》(增加)把所有的头像拼接成一张图。
使用的PIL包,方法代码文章见:《1000张图片如何拼接》(去除)原文章有一段对微信中认识和不认识的好友进行统计,看了一下不太适合我在微信中的标记。
以下是以微信好友的简单数据分析。
一、数据和字段情况
一共 1,546 个微信好友。看了一下,并不是所有的字段大家都有完整填写,如省市没有填写的293人,填写了外国和国外城市名的89人。所以以下数据就是简单分析,甚至年龄的分析都可以当作抽样分析。
二、来源省市
朋友们来源最多的是上海,其次是北京、安徽。(明明有两位台湾朋友,我核对了一下,他们一位写了天津,一位没有标明)
来自上海的好友地域分布情况:
除了上海、北京外,来源比较多的城市是:深圳、杭州、广州、成都、安庆。
三、性别比例
三、头像和年龄
把全部头像用Face++进行人脸检测,有352人检测出有效数据(性别、年龄)占22.8%。
男性最大年龄56岁,最小 -4 岁(Face++的误判了),
女性最大年龄54岁,最小 2 岁。
14岁以下的一共33人,占9.38%。这是不是都是家里小朋友的照片啊。
换个说法,用清晰的人像照片作为头像的只占22.8%。我还没有分析统计出用人像、卡通、风景图片作头像的比例,网上有根据微信头像分析性格的文章,也蛮有意思,可以看看。
一个有趣的发现,女性头像用Face++测出来,貌似比实际都小3、5岁。看来美颜相机都用得比较好。但是通过锻炼健身的人,头像检测出来就远不止小这么多了,微信朋友中有一位“逆龄蜘蛛侠”测出来明显与实际年龄相差近16岁,看是去真年轻。所以多健身锻炼,再加上美颜相机、美图秀秀,效果会更好。
四、个性签名透露什么
好友中1130人留有个性签名,去掉全英文、数字、表情符号的签名后有925条,分词后,统计出现频度最高的100个,生成的词云图如下。
其中“你”和“我”都应该都指的是自己,从人性签名中可以看出,大家比较关注自我成长,有目标,想改变,有方向,有梦想,要坚持,要努力和行动的词语比较多。
我泄露了什么吗?
你还记得在什么时候,在哪里,是用什么方式,我们加了微信。
PS: 文章中使用的Python代码都在这里:https://github.com/ppy2790/weixin