一件有趣的事:我用 Python 爬了爬自己的微信朋友

最近几天干啥都不来劲,昨晚偶然了解到 Python 里的 itchat 包,它已经完成了 wechat 的个人账号 API 接口,使爬取个人微信信息更加方便。鉴于自己很早之前就想知道诸如自己微信好友性别比例都来自哪个城市之类的问题,于是乎玩心一起,打算爬一下自己的微信。

首先,在终端安装一下 itchat 包。

安装完成后导入包,再登陆自己的微信。过程中会生产一个登陆二维码,扫码之后即可登陆。登陆成功后,把自己好友的相关信息爬下来。

有了上面的 friends 数据,我们就可以来做分析啦。

自己微信好友的男女比例

仔细观察了一下返回的数据结构,发现”性别“是存放在一个字典里面的,key 是”Sex“,男性值为 1,女性为 2,其他是不明性别的(就是没有填的)。可以写个循环获取想要的性别数据,得到自己微信好友的性别比例。

打印的结果为:

男性好友:37.65%

女性好友:59.23%

不明性别好友:3.12%

啊,一不小心就暴露了自己女性朋友比较多的事实。然而为什么我现在还是一只汪?!好了,再把这个数据用R画成图看看(Python 作图真的是忍不了,代码就不放了):

自己微信好友的城市分布

再仔细观察 friends 列表,发现里面还包含了好友昵称、省份、城市、个人简介等等的数据,刚好可以用来分析好友城市分布,最好的方式是定义一个函数把数据都爬下来,存到数据框里,再进行分析。

以上便得到一个叫 data 的 csv 桌面文件, 用 R 打开并简单做一下数据预处理,得到如下(涉及隐私的已被预处理):

接着先根据省份、城市进行数据的分组和聚合,选择排名前二十的,利用 ggplot2 包画出如下的城市分布图(代码太长,不放了,就是这么任性,有需要参考的直接向我拿):

看来我大部分的朋友都是在广东的(不是废话吗),其中广东的朋友大部分集中在广、深、珠,第二名是在奥克兰, 接着是四川、中国澳门等。灰色的 NA 值是指没有设置自己所在地的朋友,一共有 70 多人。

另外,在国外的朋友由于微信的设置问题(很多是直接跳过省份,只有城市可以选择的),很多国外的城市被误当成了省份。

再来一张图看看自己微信朋友在广东的具体分布(取前八):

自己微信好友个性签名的自定义词云图

好玩的来了。之前已经爬下了每个好友的个性签名,刚好可以分析一下大伙儿个性签名时使用的高频词语是什么,顺便可以做个词云图。

先把原先爬下来的个性签名(Signature)打印出来,发现有很多本来是表情的,变成了 emoji、span、class 等等这些无关紧要的词,需要先替换掉,另外,还有类似<>/= 之类的符号,也需要写个简单的正则替换掉,再把所有拼起来,得到 text 字串。

接着就可以把 JB,啊不,把结巴分词这个包搞进来分词。

终于可以进入画图阶段了。可以根据自己想要的图片、形状、颜色画出相似的图形(在这里,我使用的是我的头像,当然,为了颜色可以更加鲜艳使最后画出的词云图更加好看易辨,我先对自己的头像用 PS 做了一点小处理)。为此,我们需要把 matplotlib、wordcloud、numpy、PIL 等包搞进来。

运行上面的代码,得到下面的图:

看来,在我的微信好友的个人签名里,有人善于聆听,有人强调善良,有人重视灵魂,有人凝视人生。一直在等待,不放弃寻找。历尽曲折,不畏虚伪。真心如一,不能辜负。一步一生多努力,一起一切 one more dream(真编不下去了)。

最后

以上是不是很有趣呢?是不是又打开了一扇新世界的大门呢?

我微信好友也不是太多,如果微信好友有几千个,可以得到几千条数据,分析一下还是很有价值的。

当然,itchat 包还有很多其他的功能还有待发掘,包括自动回复微信信息、自动添加好友、管理微信群等,有时间再慢慢摸索吧。

来源:数盟

END

投稿和反馈请发邮件至holly0801@163.com。转载大数据公众号文章,请向原文作者申请授权,否则产生的任何版权纠纷与大数据无关。

原文发布于微信公众号 - 大数据(hzdashuju)

原文发表时间:2017-07-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

【作业4.0】HansBug的第四次面向对象课程思考

1173
来自专栏ATYUN订阅号

上辈子是运动员?一款人脸识别AI应用检测你与哪个世界杯运动员长得最像

挪威新闻机构VG团队开发了一款全新的AI工具,使用面部识别技术,来查找与你的长相最为相似的足球运动员。

1077
来自专栏大数据文摘

Science最新研究:AI通过追踪光标移动,线上勘破骗局

1648
来自专栏CDA数据分析师

为什么75%的数据科学家使用R做数据分析?

作者   CDA 数据分析师 数据科学家被认为是21世纪最性感也是最具发展前景的职业,目前有75%左右的数据科学家使用R语言,有35%左右的数据科学家将R语言作...

2759
来自专栏带你撸出一手好代码

谈谈代码质量问题

我们编写代码, 假如代码有语法错误,那么编译器将会拒绝通过编译, 假如代码语法正确, 那么编译器会通过编译, 因此, 判断代码是否编写正确, 可以拿代码是否能通...

4099
来自专栏华章科技

大数据告诉你:如何让大忙人及时回复邮件

网上教人们如何写邮件的建议不少,但大多还没有数据做支撑。最近,邮件效率服务商Boomerang通过分析5300多万封邮件数据,找出了一些影响邮件回复率的窍门。总...

591
来自专栏数据小魔方

突然有一个大胆的想法,提前分享给大家

也是由于前段时间工作中遇到一个很小文本分析的需求,虽然最后不了了之了,但是却勾起来自己对文本分析的极大兴趣。

1031
来自专栏PPV课数据科学社区

回顾R和微软过去的一年

托马斯·斯莫尔的ML / DL博客最近回顾了数据科学,机器学习和深度学习显著的进步-其中许多涉及R和/或微软。以下是他们的亮点: R Project R和Pyt...

3255
来自专栏橙、

我们知道你在看什么(即使它是加密的)

在周五晚上疯狂地看六个小时没有太大意义的侦探片,用着Silent Phone(APP),品着一杯红酒,这是我基本的权利我深信不疑。我也可以说我可以这么做...

2566
来自专栏腾讯云数据库(TencentDB)

TDSQL参加全球数据库顶级盛会 VLDB 2018回顾

作者介绍:卞昊穹(hankbian):腾讯数据库TDSQL团队成员,高级工程师。中国人民大学博士,曾在SIGMOD、ICDE、CIKM等数据库相关领域顶级会议发...

6244

扫码关注云+社区

领取腾讯云代金券