你身处的环境是什么样,你就会成为何样的人。如今人们平常生活基本上离不开微信,但微信不仅仅是一个即时通信软件,微信更像是虚拟的现实世界。你所处的朋友圈是怎么样,慢慢你的思想也会变的怎么样。最近在学习 itchat,而后就写了一个爬虫,爬取了我全部的微信好友的数据。并对其中的一些数据进行分析,发现了一些颇有趣的事。json
这次的爬虫程序用到的库有不少,其中爬取微信数据用到的事 itchat。须要你先去下安装。安装完成之后,你就能够经过 itchat.login() 这个函数登录你本身的微信。它回弹出一个网页登录的二维码,你用手机扫描登录便可。bash
而后经过 itchat.get_friends() 这个函数就能够获取到本身好友的相关信息,这些信息是一个 json 数据返回。而后咱们就能够根据这些返回的信息,进行正则匹配抓取咱们想要的信息,在进行分析。微信
import itchat
itchat.login()
#爬取本身好友相关信息, 返回一个json文件
friends = itchat.get_friends(update=True)[0:]
复制代码
观察返回的数据,很容易就能够根据关键字发现性别是存放在一个字典里面,它的 key 是「Sex」,男性值为 1,女性为 2,其余是不明性别的(就是没有填的)。函数
在代码里我定义了一个函数 parse_friends() 经过一个 for 循环,把获取到的数据经过 for 循环保存到 text 字典里。而后再经过 draw() 函数画出柱状图。柱状图使用的是 plt 库,以前也写过一篇文章,感兴趣的同窗能够去查看。学习
最后打印的结果:spa
不得很少说我微信的 1K 多的好友男女比列很是的不协调,男多女少啊。这让我回想起之前高中一个班 50 我的,女生就 7 个,而后咱们班的女生今后就有一个女团称呼「七仙女」。3d
为了进一步分析个人好友大体都有什么特征,我把好友的个性签名一块儿抓取,分析制做成词云。code
个性签名是保存在 Signature 这个 key 中,因为有些签名包含些表情,最初抓取会变成 emoji、span、class 等等这些无关的词。全部须要先替换掉,另外,还有相似 <>/= 之类的符号,也须要写个简单的正则替换掉,再把全部拼起来,获得 text 字串。cdn
获得的数据最后保存到当前目录名为「text.txt」文本中。blog
分析好友签名的函数我定义成:parse_signature(),完整代码以下:
抓取整理了签名的数据,接下来就是制做出词云。这里使用的是 wordCloud 来进行词云的制做。以前的文章也有介绍过词云的制做,感兴趣的同窗能够查看这篇文章。
词云的制做我定义了一个:draw_signature() 函数,完整代码以下
运行上面的代码后获得了以下的图,因为好友数量比较多,我分别找了两张图制做出图云。
努力,奋斗,世界,生活,本身。这些词在咱们 1K 多人的好友中出现的最多。你们都很是的优秀,都很是的上进。
个人签名:人生必有痴,而有后成。如今的我痴迷于各类优秀的人,天天都在向他们学习。但愿你们一辈子当中也有痴迷的一面。
须要完整的代码能够关注公众号「痴海」,后台回复「代码」,便可领取。