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

全世界只有3.14 % 的人关注了

数据与算法之美


最近几天干啥都不来劲,昨晚偶然了解到Python里的itchat包,它已经完成了wechat的个人账号API接口,使爬取个人微信信息更加方便。


鉴于自己很早之前就想知道诸如自己微信好友性别比例都来自哪个城市之类的问题,于是乎玩心一起,打算爬一下自己的微信。

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


pip install itchat

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


640?wx_fmt=png


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



640?wx_fmt=png

1. 自己微信好友的男女比例




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


640?wx_fmt=png


打印的结果为:

男性好友: 37.65%

女性好友: 59.23%

不明性别好友: 3.12%


啊,一不小心就暴露了自己女性朋友比较多的事实。然而为什么我现在还是一只汪?!

好了,再把这个数据用R画成图看看(Python作图真的是忍不了,代码就不放了):



640?wx_fmt=png




640?wx_fmt=png2. 自己微信好友的城市分布




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


640?wx_fmt=png

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

      

640?wx_fmt=png

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


640?wx_fmt=png

看来我大部分的朋友都是在广东的(不是废话吗),其中广东的朋友大部分集中在广、深、珠,第二名是在奥克兰, 接着是四川、澳门等。灰色的NA值是指没有设置自己所在地的朋友,一共有70多人。另外,在国外的朋友由于微信的设置问题(很多是直接跳过省份,只有城市可以选择的),很多国外的城市被误当成了省份。


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


640?wx_fmt=png




640?wx_fmt=png3. 自己微信好友个性签名的自定义词云图




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

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


640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png

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


640?wx_fmt=jpeg


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

我本来提供的原图(经过处理的我的头像):


640?wx_fmt=jpeg




640?wx_fmt=png4. 最后




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


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


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


来源:Alfred在纽西兰

版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。


640?wx_fmt=png精品课程推荐:

640?wx_fmt=png

640?wx_fmt=png

选购数学科普正版读物

严选“数学思维好物”

送给孩子的益智礼物   |   办公室神器

算法工程师成长阅读   |   居家高科技

理工科男女实用型礼物精选   

640?wx_fmt=jpeg

640?wx_fmt=jpeg640?wx_fmt=jpeg

640?wx_fmt=jpeg640?wx_fmt=jpeg

----640?点击头像关注----

640?wx_fmt=png

超级数学建模

640?wx_fmt=png

数据与算法之美

640?wx_fmt=jpeg

少年数学家

640?wx_fmt=jpeg

数锐学堂

640?wx_fmt=jpeg

惊喜酱(个人号)

640?wx_fmt=jpeg

玩酷屋COOL


640?wx_fmt=gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ML.NET Cookbook:(4)如何调试实验或预览管道?

大多数ML.NET数据操作都是延迟执行的&#xff1a;声明时&#xff0c;操作符不会立即处理数据&#xff0c;而是验证该操作是否可行。执行被推迟到实际请求输出数据为止。这意味着架构不匹配将在声明时抛出&#xff0c;但是直到执行时才抛出数据错误。延迟计算是数据库系统的一种…

数学本是非常有趣的,只是教科书呈现的方式太死板

数学是基础学科&#xff0c;是打开科学大门的钥匙。数学能力决定着一个人的科技创新能力&#xff0c;而科技创新能力决定着一个孩子未来的竞争力。数学也是一门不断累积的学问&#xff0c;学习数学也是一个渐进的过程&#xff0c;要是基础的概念不理解&#xff0c;基础学习得不…

oracle期间平均成本,小李飞刀系列之Oracle EBS期间平均成本(PAC)--生产成本计算(四)制造费用设置及成本计算...

在上两篇文章中介绍了资源的设置及其成本计算&#xff0c;本篇文章将介绍与资源关联非常紧密的制造费用的设置及成本计算。1. 制造费用设置图 1. 制造费用主设置界面制造费用主设置界面如图1所示&#xff0c;成本要素选择”制造费用”&#xff0c;并设置制造费用的名称、说明、…

通过Dapr实现一个简单的基于.net的微服务电商系统(十二)——istio+dapr构建多运行时服务网格...

多运行时是一个非常新的概念。在 2020 年&#xff0c;Bilgin Ibryam 提出了 Multi-Runtime&#xff08;多运行时&#xff09;的理念&#xff0c;对基于 Sidecar 模式的各种产品形态进行了实践总结和理论升华。那到底什么是多运行时呢&#xff1f;首先还是得从分布式应用的四大类…

如何把文件压缩变成一张图片?

全世界只有3.14 % 的人关注了数据与算法之美先准备好三个文件。图片、压缩包、批处理文件。然后编辑bat文件。压缩命令代码是&#xff1a;copy /b 图片.jpg压缩包.rar 最后输出文件名.jpg例如&#xff1a;copy /b A.jpgtest.rar B.jpg 注意空格。保存之后执行bat批处理文件。执…

.NET程序崩溃了怎么抓 Dump ? 我总结了三种方案

一&#xff1a;背景 1. 讲故事最近几天接到了几个crash的求助&#xff0c;可能这几个朋友没玩过怎么去生成dump&#xff0c;只能手把手教&#xff0c;感觉也不是一个办法&#xff0c;所以有必要总结一下&#xff0c;后续再有朋友咨询的话&#xff0c;我就可以把这篇文章丢过去了…

敏捷软件开发之结对编程

2019独角兽企业重金招聘Python工程师标准>>> 说明 【作为推荐的最佳实践&#xff0c;结对编程早已为人们熟知&#xff0c;并且也是所有XP实践中争议最大的一个】 结对编程技术是一个非常简单和直观的概念&#xff1a;两位程序员肩并肩地坐在同一台电脑前合作完成同一…

Build 2021 :正式发布.NET 6 Preview4

微软在不断推进.NET 6的可用性&#xff0c;昨晚的Build 2021大会上发布了Preview4&#xff0c; 这是一个很大的版本更新&#xff0c;带来大量的功能&#xff0c;以及接近最终的产品交付质量&#xff0c;不过&#xff0c;这并不意味着可以在生产环境使用了&#xff0c;正式发布R…

程序员与代码的几种关系,每种都会被我们鄙视

全世界只有3.14 % 的人关注了数据与算法之美程序员很大部分时间都在和代码打交道&#xff0c;所以程序员和代码之间的关系&#xff0c;在很多常人看来&#xff0c;是无法理解的&#xff0c;下面我们就来聊聊。找到你仅仅是为了将你消灭掉在程序员的世界里面&#xff0c;一个词语…

.NET 6 Preview 4 已发布,ASP.NET Core 更新内容

原文&#xff1a;bit.ly/3wFqDy9作者&#xff1a;Daniel译者&#xff1a;王亮.NET 6 预览版 4 现已发布&#xff0c;其中包括对 ASP.NET Core 的许多新改进。下面是此次预览版中 ASP.NET Core 的更新内容&#xff1a;引入最小 API异步流HTTP 日志中间件新项目中使用 Kestrel 作…

linux 装nano命令,linux下安装 nano 如果没有这个命令的话~~可以看下

首先查看下这个目录里有没有Centos-Base.repo这个文件(附件里有这个)然后用Xmanager下的xftp 把本机上的这个文件复制到虚拟机中的/目录下[rootfox ~]#mv Centos-Base.repo /etc/yum.repos.d/[rootfox ~]# cd /etc/yum.repos.d/[rootfox yum.repos.d]# lsCentos-Base.repo Cen…

struts2对action的指定方法进行校验

2019独角兽企业重金招聘Python工程师标准>>> 在strust2中&#xff0c;我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验。 一、对于输入校验struts2提供了两种实现方法&#xff1a; 1、采用手工编写代码实现。 &#xff08;1&#xff09;通过…

EFCore之命令行工具

介绍EFCore工具可帮助完成设计数据库时候的开发任务&#xff0c;主要用于通过对数据库架构进行反向工程来管理迁移和搭建DbContext和实体类型。EFCore .NET命令行工具是对跨平台.NET Core CLI工具的扩展&#xff0c;该工具执行需要具有.NET Core SDK(具有 Sdk"Microsoft.N…

想让数据分析更简便,怎能少了它!

R作为一种统计分析软件&#xff0c;广泛应用于生物、医学、电商、新闻等数据相关行业&#xff0c;是目前主流数据应用软件之一。为了更好地帮助大家了解并快速入门R语言&#xff0c;现超级数学建模携手柯老师以R语言为基础&#xff0c;向大家隆重推出《R语言基础》系列课。柯老…

分类预测 | Matlab实现MTF-CNN-Mutilhead-Attention基于马尔可夫转移场-卷积神经网络融合多头注意力多特征数据分类预测

分类预测 | Matlab实现MTF-CNN-Mutilhead-Attention基于马尔可夫转移场-卷积神经网络融合多头注意力多特征数据分类预测 目录 分类预测 | Matlab实现MTF-CNN-Mutilhead-Attention基于马尔可夫转移场-卷积神经网络融合多头注意力多特征数据分类预测分类效果基本描述程序设计参考…

Akka2使用探索3(Duration 和 Deadline)

2019独角兽企业重金招聘Python工程师标准>>> akka提供了两个关于时长的数据类型&#xff1a;Duration 和 Deadline&#xff0c;比如5秒钟这种含义。 Duration.Inf表示无限&#xff0c;Duration.MinusInf表示负无限 Deadline, 表示一个绝对的时间点&#xff0c;意义是…

C#垃圾回收机制(GC)

GC的前世与今生虽然本文是以.net作为目标来讲述GC&#xff0c;但是GC的概念并非才诞生不久。早在1958年&#xff0c;由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能&#xff0c;这是GC的第一次出现。Lisp的程序员认为内存管理太重要了&#xff0c;所…

收藏 | EXCEL的36个逆天功能,动画教程

全世界只有3.14 % 的人关注了数据与算法之美1、添加文字下面线条的2种方法2、设置列宽的3种方法3、以cm为单位设置行高跟列宽4、输入0开头数字的2种方法5、快速输入当天日期与时间6、如何输入分数&#xff1f;7、生成序列的3种方法8、快速录入相同内容9、隐藏没有数据区域10、填…

读《中台架构与实现》

最早是在极客时间知道欧创新老师的&#xff0c;我也是他的课程《DDD实战课》的订阅者&#xff0c;后来欧老师基于这门课程做更多的实践与思考&#xff0c;完成了《中台架构与实现&#xff1a;基于 DDD 和微服务》这本书的写作&#xff0c;最近刚好读完了这本书。中台、微服务、…

fedora17的gnome3桌面美化

使用fedora已经有一段时间了,感觉还可以. 今天配置一下gnome的桌面吧. 首先要安装一款工具,这个可以说很必要了,当然,好多的博客里也都提到过,这就是 gnome-tweak-tool yum install gnome-tweak-tool 之后呢, 就可以打开这个软件,在附件里, 中文名字叫做高级设置,英文名字叫做…