专栏首页数据魔术师10分钟教你用Python玩转微信之抓取好友个性签名制作词云

10分钟教你用Python玩转微信之抓取好友个性签名制作词云

各位小伙伴我又来啦。今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云。怎样,有趣吧~好了,下面开始干活。我知道你们还是想先看看效果的。

后台登录:

词云:

环境准备

Python版本:3.6.0

系统平台:Windows 10 X64

IDE:pycharm

相关模块:

re模块;

itchat模块;

jieba模块;

import matplotlib.pyplot模块;

wordcloud模块;

以及一些Python自带的模块。

获取个性签名

首先要做的,当然还是登录微信,获取好友的个性签名啦:

 1import itchat
 2# 先登录
 3itchat.login()
 4
 5# 获取好友列表
 6friends = itchat.get_friends(update=True)[0:]
 7for i in friends:
 8   # 获取个性签名
 9   signature = i["Signature"]
10print(signature)

但是获取下来之后我们会发现,有大量的span,class,emoji,emoji1f3c3等的字段:

这是因为个性签名中使用了表情符号,这些字段我们都是要过滤掉的,所以写个正则表达式然后用replace方法去掉吧。

过滤掉emoji表情

注:完整代码下载请移步留言区。

这次把相关字段给replace成空格先:

1# 获取好友列表
2friends = itchat.get_friends(update=True)[0:]
3for i in friends:
4  signature = i["Signature"].strip().replace("span", "").replace("class", "").replace("emoji", "")# 获取个性签名
5  print(signature)

然后发现,还是不太妥当:

这里要借助一下re了,写个正则把这些统统干掉:

1# 获取好友列表
2friends = itchat.get_friends(update=True)[0:]
3for i in friends:
4  signature = i["Signature"].strip().replace("span", "").replace("class", "").replace("emoji", "")# 获取个性签名
5  rep = re.compile("< =.+/>")# 正则匹配过滤掉emoji表情,例如emoji1f3c3等
6  signature = rep.sub("", signature)
7  print(signature)

为了照顾新手朋友,这里直接用了最简单的正则形式,把两端的尖括号直接匹配然后干掉,不过一般不推荐这样干。推荐用这样的表达式rep = re.compile("[^\u4e00-\u9fa5^]")。关于正则和re大家还是自己去找资料学习吧。然后perfect了:

制作词云

注:完整代码下载请移步留言区。

接下来用jieba分词,然后制作成词云,在此之前记得安装jieba和wordcloud库。

 1# jieba分词
 2wordlist_jieba = jieba.cut(text, cut_all=True)
 3wl_space_split = " ".join(wordlist_jieba)
 4
 5# 这里要选择字体存放路径,win的字体在windows/Fonts中
 6# #如果是中文必须要添加字体路径,否则会显示成框框
 7my_wordcloud = WordCloud(background_color="white", width=1600, height=1200,
 8                        font_path='C:\Windows\Fonts\你的字体.ttf').generate(wl_space_split)
 9
10plt.imshow(my_wordcloud)
11plt.axis("off")
12plt.show()

记得要设置好中文路径哦。

效果图:

完整代码如下:

 1import itchat
 2import re
 3import jieba
 4import matplotlib.pyplot as plt
 5from wordcloud import WordCloud
 6
 7itchat.login()
 8friends = itchat.get_friends(update=True)[0:]
 9tList = []
10for i in friends:
11    signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
12    rep = re.compile("< =.+/>")
13    signature = rep.sub("", signature)
14    tList.append(signature)
15
16# 拼接字符串
17text = "".join(tList)
18
19# jieba分词
20wordlist_jieba = jieba.cut(text, cut_all=True)
21wl_space_split = " ".join(wordlist_jieba)
22
23# 这里要选择字体存放路径,这里是Mac的,win的字体在windows/Fonts中
24# #如果是中文必须要添加字体路径,否则会显示成框框
25my_wordcloud = WordCloud(background_color="white", width=1600, height=1200,
26                         font_path='C:\Windows\Fonts\你的字体.ttf').generate(wl_space_split)
27
28plt.imshow(my_wordcloud)
29plt.axis("off")
30plt.show()

本文分享自微信公众号 - 数据魔术师(data-magician)

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

原始发表时间:2018-12-09

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何正确初始化神经网络的权重参数

    近几年,随着深度学习的大火,越来越多的人选择去入门、学习、钻研这一领域,正确初始化神经网络的参数对神经网络的最终性能有着决定性作用。如果参数设置过大,会出现梯度...

    用户1621951
  • 10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)

    刚学完C++。一时兴起,就花几天时间手动做了个贪吃蛇,后来觉得不过瘾,于是又加入了AI功能。希望大家Enjoy It.

    用户1621951
  • 干货 | JAVA调用cplex求解一个TSP模型详解

    前面我们已经搭建好cplex的java环境了,详情可以看干货 | cplex介绍、下载和安装以及java环境配置和API简单说明,相信大家已经跃跃欲试,想动手写...

    用户1621951
  • 10分钟教你用Python玩转微信之抓取好友个性签名制作词云

    但是获取下来之后我们会发现,有大量的span,class,emoji,emoji1f3c3等的字段:

    短短的路走走停停
  • 浅谈数据中心应急冷源

    一.引言 数据中心作为信息通讯的中枢,持续运转的服务器将产生大量的热量,若不及时将热量排出,聚集的热量将会引起服务器高温,从而影响设备稳定运行。 精密空调系统作...

    腾讯数据中心
  • 关于Kinetics-700人类行为数据集的简短说明

    作者:Joao Carreira,Eric Noland,Chloe Hillier,Andrew Zisserman

    空白的小飞机
  • 超强干货!TensorFlow易用代码大集合...

    实际上,在我们搭建自己的模型或系统时,复制并粘贴这些代码就行了。它们以规范的形式定义不同的功能模块,因此只要修改少量参数与代码,它们就能完美地融入到我们项目中。...

    昱良
  • 重拾Kotlin(11)-集合

    Kotlin 的集合设计和 Java 不同的另一项特性是:Kotlin 把访问数据的接口和修改集合数据的接口分开了,kotlin.collections.Col...

    叶应是叶
  • 喜大普奔,Keras 官方中文版文档发布啦!

    AI 研习社消息,日前,Keras 之父 François Chollet 在 twitter 上发布消息,宣称 Keras 中文版本正式上线,同时,对所有做出...

    AI研习社
  • 9种平台帮助你深度学习Keras

    Keras是一个Python深度学习库,它可以使用高效的Theano或TensorFlow符号数学库作为后端。同时,Keras很容易使用,你可以在几分钟内开发出...

    AiTechYun

扫码关注云+社区

领取腾讯云代金券