10分钟教你用Python玩转微信之抓取好友个性签名制作词云
01 前言+展示
各位小伙伴我又来啦。今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云。怎样,有趣吧~好了,下面开始干活。我知道你们还是想先看看效果的。
后台登录:
词云:
02 环境准备
Python版本:3.6.0
系统平台:Windows 10 X64
IDE:pycharm
相关模块:
re模块;
itchat模块;
jieba模块;
import matplotlib.pyplot模块;
wordcloud模块;
以及一些Python自带的模块。
03 获取个性签名
首先要做的,当然还是登录微信,获取好友的个性签名啦:
1import itchat
2# 先登录
3itchat.login()
4
5# 获取好友列表
6 friends = itchat.get_friends(update=True)[0:]
7 for i in friends:
8 # 获取个性签名
9 signature = i["Signature"]
10print(signature)
但是获取下来之后我们会发现,有大量的span,class,emoji,emoji1f3c3等的字段:
这是因为个性签名中使用了表情符号,这些字段我们都是要过滤掉的,所以写个正则和然后用replace方法去掉吧。
04 过滤掉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了:
05 制作词云
接来下用jieba分词,然后制作成词云,在此之前记得安装jieba和wordcloud库。
1 # jieba分词
2 wordlist_jieba = jieba.cut(text, cut_all=True)
3 wl_space_split = " ".join(wordlist_jieba)
4
5 # 这里要选择字体存放路径,win的字体在windows/Fonts中
6 # #如果是中文必须要添加字体路径,否则会显示成框框
7 my_wordcloud = WordCloud(background_color="white", width=1600, height=1200,
8 font_path='C:\Windows\Fonts\苹方\PingFang Bold_0.ttf').generate(wl_space_split)
9
10plt.imshow(my_wordcloud)
11plt.axis("off")
12plt.show()
记得要设置好中文路径哦。
效果图:
06 完整代码
欲获取代码,请关注我们的微信公众号【程序猿声】,在后台回复:pycode02。即可获取。
微信公众号
推荐文章:10分钟教你用Python做个打飞机小游戏超详细教程
推荐文章:10分钟教你用python下载和拼接微信好友头像图片
10分钟教你用Python玩转微信之抓取好友个性签名制作词云的更多相关文章
- 10分钟教你用Python玩转微信之好友性别比例统计分析
01 前言+效果展示 想必,微信对于大家来说,是再熟悉不过的了.那么,大家想不想探索一下微信上的各种奥秘呢?今天,我们一起来简单分析一下微信上的好友性别比例吧~废话不多说,开始干活. 结果如下: 02 ...
- 【python】10分钟教你用python打造贪吃蛇超详细教程
10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...
- 10分钟教你用Python打造天气机器人+关键字自动回复+定时发送
01 前言 Hello,各位小伙伴.自上次我们介绍了Python实现天气预报的功能以后,那个小程序还有诸多不完善的地方,今天,我们再次来完善一下我们的小程序.比如我们想给机器人发“天气”等关键字,它就 ...
- 10分钟教你用Python打造微信天气预报机器人
01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...
- 【python】10分钟教你用python如何正确把妹
前言 今天没妹子约,刚好研究一下.如何用神奇的python打造一个把妹神器吧.看完这个,你们就能走向人生巅峰,迎娶白富美啦. 我知道你们想看看效果 image 当然啦,这只是测试版的效果,真正的版本可 ...
- 【python】10分钟教你用python下载和拼接微信好友头像图片
前言 相信微信大家是用得再多也不过了.那么,对于python+微信,又能玩出什么新的花样呢?下面小编就给大家带来一个好玩的东西.用python下载所有的微信好友的头像,然后拼接成一张大图.这样,大家就 ...
- 【python】10分钟教你用python一行代码搞点大新闻
准备 相信各位对python的语言简洁已经深有领会了.那么,今天就带大家一探究竟.看看一行python代码究竟能干些什么大新闻.赶紧抄起手中的家伙,跟我来试试吧. 首先你得先在命令行进入python. ...
- 10分钟教你用Python实现微信自动回复
01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把 ...
- 【python】10分钟教你用Python做个打飞机小游戏超详细教程
更多精彩尽在微信公众号[程序猿声] 我知道你们一定想先看效果如何 00 目录 整体框架 开始之前-精灵类Sprite 子弹类class Bullet 玩家飞机类class Player 敌机类clas ...
随机推荐
- c++ 享元模式(flyweight)
举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子.现在要实现一个围棋程 序,该怎么办呢?首先要考虑的是棋子棋盘的实现,可以定义一个棋子的类,成员变量包括棋子的颜色.形状.位置等信息,另外再定 ...
- ajax请求后台有时走有时不走
ajax请求后台有时走有时不走 ajax请求后台有时走有时不走,是因为没有将请求设置为同步方式,async:false,(默认为true即异步).如果不想使用缓存可以将cache:false,例如 ...
- Python学习笔记_读Excel去重
读取一个Excel文件,按照某列关键字,如果有重复则去掉 这里不介绍所有的解决办法,只是列出一个办法. 软件环境: OS:Win10 64位 Python 3.7 测试路径:D:\Work\Pytho ...
- nhibernate 3.x新特性
http://www.360doc.com/content/14/0226/17/9316347_355904008.shtml
- debian 9 更换源 使用国内源 配置方法
配置前请先参考: https://wiki.debian.org/SourcesList https://www.debian.org/mirror/list https://mirrors.tuna ...
- Notepad++ xml/json格式化
Xml格式化: 1. 安装XML Tools插件 (1) 通过网址http://sourceforge.net/projects/npp-plugins/files/XML%20Tools/下载XML ...
- smarty类与对象的赋值与使用
<?phprequire_once('../smarty/Smarty.class.php'); //配置信息$smarty=new Smarty(); $smarty->left_del ...
- Java书籍经典Top10
1)Java Language Specification, Third Edition (by James Gosling) 本书由Java技术的发明者编写,是Java TM编程语言的权威性技术指南 ...
- How To Start Building Spatially Aware Apps With Google’s Project Tango
How To Start Building Spatially Aware Apps With Google’s Project Tango “Tango can enable a whole new ...
- C++编译器之间的不同性能
C++编译器之间的不同性能 编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序.一个现代编译器的主要工作流程:源代码 (source code) →预处理器 (preprocessor) → ...