早些日子有人问我我的微信里面有一共多少朋友,我就随后拉倒了通讯录最下面就找到了微信一共有多少位好友。然后他又问我,这里面你认识多少人?这一句话问的我很无语。一千多个好友我真的不知道认识的人有多少。他还紧追着不放了,你知道你微信朋友的男女比例嘛?你知道你微信朋友大部分来自什么地方吗?
不知道不知道不知道!偶然有一天碰到大大的一条朋友圈,大概是对微信朋友做一个分析,于是乎我才想起我也可以做一些简单的统计,于是就有了今天的内容。今天的内容会以代码简单讲解结果展示为向导。
以下的代码内容只涉及一些简单的Python知识,稍微有一点Python知识的朋友都可以读下去。 如果你没有Python的知识你可能需要去学习一下Python,当然你也可以不用学,搭建好Python的环境就好,期间可能需要用到一些库需要自己去解决一下,在下文中也会详细诉述。
第一步:首先抓取微信朋友的资料
既然是要做统计和分析,第一步就是微信朋友的所有可以抓取的资料抓取出来。所谓有用的资料大致来说有以下几个内容:
昵称、微信号、城市、性别、星标好友、头像、个性签名、备注
每一项或者联合项可以做的统计
性别:好友性别统计
城市:好友地区分布
备注+昵称:大致统计认识的好友比例
头像:人脸识别
那么如何抓取呢?这里使用了之前有一位大神写的如何找出被删的好友的代码,修改部分为从提取json数据截断,对返回的json数据进行提取分别找到了以下的所需要的信息:
代码修改为:
所返回的json结果如下图所示
昵称、微信号、城市、性别、星标好友、头像、个性签名、备注。提取以上信息,对头像图片进行下载,并对数据进行简单的清洗等等,最后一列为微信号不方便显示。
第二步:性别统计和地区分布
使用python的pandas科学计算库进行简单的统计,如果你没有用过,可以联系小编安装学习:
只要掌握了非常简单的pandas只是就可以继续往下看做以下统计
(1)、所有好友的男女比例
(2)、所有好友的城市分布
(3)、统计认识的朋友以及占所有朋友的百分比
统计方法:所有朋友 - 没有备注的朋友 - 备注与昵称相同的朋友
如果大家在学习Python的路上,或者打算学习Python需要学习资料,可以加群571799375,群里学习资料免费赠送给大家喔!
(4)、统计认识的朋友中的男女比例
统计方法:对三的结果再进行男女划分即可得到结果
把结果做成简单的图表(主要使用了百度的echarts作图)(不得不说百度其他产品虽然不怎么样,但是百度的echarts还是不错的哟,他的官网:http://echarts.baidu.com/)
使用地图慧江苏省好友分布,这个编码我不知怎么回事,可能是浏览器问题,回头我用其它浏览器查看一下。(地图汇比较傻瓜:http://www.dituhui.com/)
最后再生成省份好友分布地图
最后运用opencv的图像识别进行人像识别,统计微信好友中用人像作为头像的好友人数。
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
如下开始是对抓取的朋友头像进行遍历识别是否含有人脸,代码如下。
使用人像做头像的好友:59 因此不使用人像的1133,看来使用人像的人还是很少的。
运行提取人像头像的代码最后提取出的头像如下所示 ,不得不说Python的库真是十分的有用。(因为涉及到隐私,所以这里不会展示过多的头像)
最近仍然在研究签名以及头像的可用之处,也是欢迎大家一起学习交流。同时希望以上的内容可以提升一下大家的学习兴趣。关于微信好友的更多挖掘会不断进行。
(1)、人像头像与年龄之间的关系
(2)、个性签名与年龄性格之间的关系
(3)、微信号中所包含信息推算年龄层次,预测当前微信号年龄
以上就是本文的全部内容,希望对你有所帮助!
写在最后:
如果大家在学习Python的路上,或者打算学习Python需要学习资料,可以加群571799375,群里学习资料免费赠送给大家喔!
本文来自网络,如有侵权,请联系小编删除!