Python爬取微信,我发现了之前没发现的秘密!

桃李春风一杯酒,江湖夜雨十年灯。

技术群里一位读者微信私聊我,问我能不能统计下微信好友信息并以文件形式保存。其实,以前也写过类似的文章,一篇是微信好友性别统计,一篇是制作好友签名的词云图。比较分散,今天就索性把他们整合一下,一次性完成制作好友信息 csv 表格、性别统计饼图、昵称词云图、个性签名词云图、好友城市地区分布柱形图。

效果图

以下是本次程序运行后生成的信息图。(源码获取方式文末已给出)

1、好友信息表格

csv 文件中包括昵称、备注名称、性别(1 表示男,2 表示女,0 表示没有填写性别信息)、个性签名、省份、城市。第一条信息是自己的信息。

2、好友性别统计饼状图 此图根据收集的好友信息的性别进行统计比例,图中看到我的微信好友中男性还是占大多数的,也有一部分伙伴不愿意透露自己的性别。

3、好友昵称词云图 对微信好友的昵称收集进行分词后做成词云图,图中字体越大表示出现的次数越多。看来有部分伙伴喜欢取叠词作为昵称,像露露、大大、甜甜、西西之类的。其他的昵称有「人生」和「天下」的豪迈,也有「蜗牛」和「晴天」的惬意。

4、好友个性签名词云图 对微信好友的个性签名收集进行分词后做成词云图,图中字体越大表示出现的次数越多。人生、奋斗、生活、努力、世界、未来等是我微信好友签名的主旋律,看来大家都是积极向上的乐观派。

5、好友主要城市分布柱形图 对微信好友资料中填写的城市或地区进行统计,图中为了展示效果,我去掉了地区个数小于 5 个的地区数据。

项目环境

语言:Python 编辑器:Pycharm

导包

需要导入的主要包如下:

  • itchat:Python 实现调用微信接口的第三方模块。
  • jieba:分词库,用于制作词云图前的分词。
  • matplotlib:画词云图需要用到。
  • wordcloud:画词云图需要用到。
  • pyecharts:用于画柱形图和饼状图。

代码分析

代码结构由 7 部分组成,收集好友信息、整合信息、保存为 csv 文件、制作性别统计饼图、制作昵称词云图、制作个性签名词云图、制作好友城市地区分布柱形图。下面对这 7 部分进行分析讲解。

收集信息

通过 itchat 库获取所有微信好友信息并进行整理,并将好友信息一一对应打包成元组,主要代码如下。

整合信息

把收集的信息整合成字典形式,方便之后对信息进行更方便的提取,主要代码如下。

保存csv文件

将上面的字典信息保存为 csv 文件,保存文件的方法之前项目也经常用到,在此不再赘述,主要代码如下。

制作性别统计饼图

在上面收集的信息中遍历好友性别信息,为 1 时,男性数量加 1,为 2 时,女性数量加 1,其他就是表示没填写性别信息的。调用 pyecharts 库中的 Pie 方法制作饼图,生成的是一个 html 文件,打开此文件就会显示统计饼图。此文件保存目录需自己指定目录,不然会报错,代码如下。

制作昵称词云图

从上面获取的信息中提取所有好友的昵称信息,进行分词。制作词云图的背景图需要指定详细的本地路径。对词云图的参数进行设置,词云图里的字体 font_path 可以更改成自己喜欢的字体,Windows 电脑一般在系统盘\Windows\Fonts 目录下,右键点击你要设置的字体查看属性就可以看到该字体的名称。

生成的词云图我保存在该项目代码的同一目录下,主要代码如下。

制作个性签名词云图

个性签名词云图和昵称词云图的代码几乎一样,只是从上面信息取的是个性签名信息做成词云图而已。代码中保存的词云图名称改成和昵称词云图不同即可,不然会覆盖保存。当然你可以把制作词云图的背景图换一个,由于代码几乎一样,就不做展示了。

制作好友城市分布图

提取信息中的城市或地区信息,去除没填写地区或城市的空白字符。对地区信息进行统计,为了展示效果,我去掉了所在地区个数在 5 个以下的情况,因为城市太多,图会显得很臃肿。调用 pyecharts 库中的 Bar 方法制作柱形图,生成的也是一个 html 文件,和上面制作性别比例饼图一样。html 文件保存目录需自己指定目录,代码如下。

用 Python 制作这些可视化图形之前文章也讲过,没来记得看的戳这里查看 Python让你的数据生成可视化图形

后记

通过数据分析和可视化图形展示,我发现的秘密是:我的微信好友大部分都是积极向上、努力奋斗、以梦为马的伙伴,比我们优秀的人都在努力,我们没有任何借口去敷衍。最后我还发现,我的微信好友位不多了,没加我的抓紧上车了,备注「pk」即可,需要进技术群的备注「进群」。

本项目源码在公众号回复「微信统计」获取。

------------------- End -------------------

本文分享自微信公众号 - Python爬虫与数据挖掘(crawler_python)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-27

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python绿色通道

3 行代码 5 秒抠图的 AI 神器,根本无需 PS

开始文章之前先告知一下,文末点击阅读原文可以查看这个月的送书活动,我的送书活动只送给支持公众号的老铁,所以人人都有机会拿到书,别再说自己中奖绝缘体了.

54420
来自专栏华章科技

对Python开发者而言,IPython仍然是Jupyter Notebook的核心

导读:Jupyter 项目提供的魔法般的开发体验很大程度上得益于它的 IPython 基因。

10110
来自专栏华章科技

NBA球星都喜欢在哪个位置出手?看见科比的统计图我惊呆了

导读:NBA 2018-19 赛季已经落下帷幕,猛龙击败勇士,成为新科冠军球队。近日各队纷纷发布2019-20季前赛赛程,迎接新赛季。

13740
来自专栏Python无止境

小型的编程项目有哪些值得推荐?这本神书写了 22 个,个个了不得

在开始正题之前,先介绍一下它所属的系列。该系列叫 AOSA,是“The Architecture of Open Source Applications”的简称...

17730
来自专栏Python无止境

对比 C++ 和 Python,谈谈指针与引用

花下猫语:本文是学习群内樱雨楼小姐姐的投稿。之前已发布过她的一篇作品《当谈论迭代器时,我谈些什么?》,大受好评。本文依然是对比 C++ 与 Python,来探讨...

23520
来自专栏萝卜大杂烩

Python可视化Dash教程简译(一)

“ 作为数据分析的重要一环,把得到的数据或者分析结果以图表的方式展示,是一种直观、优雅的方式。Dash是基于Flask的Python可视化工具,我在学习之余尝试...

1.1K30
来自专栏萝卜大杂烩

Python性能测试locust(三)

既然是多真实用户登陆,那我们系统里就要真实的存在这些用户,如果系统有创建用户的接口,直接调用即可

24620
来自专栏华章科技

因为Python的这3个优点,我的薪资涨了一倍

如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel、Tableau、PowerBI等,都能成为数据分析的得力助手。但它们的不足也是显而易见的:操作繁...

9110
来自专栏Python绿色通道

不会js逆向,你是找不到爬虫工作的!

最后通知一下: 各位老铁请点击阅读原文,填写送书资料,今天下午1点,确定送书名额,下午发快递,除偏远地方外三天内书就到你的手上了!

31330
来自专栏萝卜大杂烩

30行Python代码,再次撬动女人的心

上一篇文章介绍了怎么给心上人推送微信消息,但是总是感觉还不够呀,毕竟自己的女人,怎么宠着都不算过分

10010

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励