【我用 Python 爬取微信好友,最后发现一个大秘密】
观察返回的数据,很容易就可以根据关键字发现性别是存放在一个字典里面,它的 key 是「Sex」,男性值为 1,女性为 2,其他是不明性别的(就是没有填的)。
在代码里我定义了一个函数 parse_friends() 通过一个 for 循环,把获取到的数据通过 for 循环保存到 text 字典里。然后再通过 draw() 函数画出柱状图。柱状图使用的是 plt 库,之前也写过一篇文章,感兴趣的同学可以去查看。
最后打印的结果:
不得不多说我微信的 1K 多的好友男女比列非常的不协调,男多女少啊。这让我回想起以前高中一个班 50 个人,女生就 7 个,然后我们班的女生从此就有一个女团称呼「七仙女」。
我的微信好友个性签名的自定义词云图
为了进一步分析我的好友大致都有什么特征,我把好友的个性签名一起抓取,分析制作成词云。
个性签名是保存在 Signature 这个 key 中,由于有些签名包含些表情,最初抓取会变成 emoji、span、class 等等这些无关的词。所有需要先替换掉,另外,还有类似 <>/= 之类的符号,也需要写个简单的正则替换掉,再把所有拼起来,得到 text 字串。
得到的数据最后保存到当前目录名为「text.txt」文本中。
分析好友签名的函数我定义成:parse_signature(),完整代码如下:
抓取整理了签名的数据,接下来就是制作出词云。这里使用的是 wordCloud 来进行词云的制作。之前的文章也有介绍过词云的制作,感兴趣的同学可以查看这篇文章。
词云的制作我定义了一个:draw_signature() 函数,完整代码如下
运行上面的代码后得到了如下的图,由于好友数量比较多,我分别找了两张图制作出图云。
努力,奋斗,世界,生活,自己。这些词在我们 1K 多人的好友中出现的最多。大家都非常的优秀,都非常的上进。
我的签名:人生必有痴,而有后成。现在的我痴迷于各种优秀的人,每天都在向他们学习。希望大家一生当中也有痴迷的一面。