如何用Python制作微信好友个性签名词云图


Posted in Python onJune 28, 2019

前言

上次查看了微信好友的位置信息,想了想,还是不过瘾,于是就琢磨起了把微信好友的个性签名拿到,然后分词,接着分析词频,最后弄出词云图来。

1.环境说明

Win10 系统下 Python3,编译器是 Pycharm,需要安装 itchat、matplotlib、pandas、jieba、wordcloud、numpy、pillow 这几个包

介绍 Pycharm 安装第三方包的方法。

如何用Python制作微信好友个性签名词云图

如何用Python制作微信好友个性签名词云图

由于某些包不能直接用 Pycharm 安装,所以这里说一下安装的方法。

安装wordcloud

worcloud需要numpy> = 1.5.1,pillow和matplotlib,所以要先安装numpy,pillow和matplotlib。

在这个链接找到合适的whl文件

如何用Python制作微信好友个性签名词云图

如果是电脑是64位,python是3.6就下载下面这个。

如何用Python制作微信好友个性签名词云图

下载回来就放到Python的目录下,就比如我是把 Python 安装在E:\Python36这个目录,就把下载回来的 wordcloud-1.3.3-cp36-cp36m-win_amd64.whl 放在这。

如何用Python制作微信好友个性签名词云图

然后按win键+R ,输入cmd,回车

如何用Python制作微信好友个性签名词云图

然后cd 到 Python 目录那

如何用Python制作微信好友个性签名词云图

接下来就是安装了,pip install wordcloud-1.3.3-cp36-cp36m-win_amd64.whl

如何用Python制作微信好友个性签名词云图

除了这个以外,某一个包需要翻墙才能安装,具体是哪个就不记得了,好像是 pandas。

2.相关代码

先把需要的东西导入,安装这些包可不简单

import itchat
import matplotlib.pyplot as plt
import re, jieba
import pandas as pd
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
import PIL.Image as Image

登录微信

itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)

获取数据

data = pd.DataFrame() # 提出好友的昵称、性别、省份、城市、个性签名,生成一个数据框
columns=['NickName', 'Sex', 'Province', 'City', 'Signature']
for col in columns:
val = []
for i in friends[1:]: # friends[0]是自己的信息,因此我们要从[1:]开始
val.append(i[col])
data[col] = pd.Series(val)

把个性签名中的 emoji 和别的东西过滤一下

siglist = []
for i in data['Signature']:
signature = i.strip().replace('emoji','').replace('span','').replace('class','')
rep = re.compile('1f\d+\w*|[<>/=]') # 具体含义另行查看
signature = rep.sub('', signature)
siglist.append(signature)
text = ''.join(siglist)

使用结巴分词进行分词,用 matplotlib 把图画出来

word_list = jieba.cut(text, cut_all=True)
word_space_split = ' '.join(word_list)
coloring = np.array(Image.open("E:/Python/wechat/toux.jpg")) #这个路径可以改,最好还是不要改
my_wordcloud = WordCloud(background_color="white", max_words=2000,
mask=coloring, max_font_size=100, random_state=42, scale=2,
font_path="C:/Windows/Fonts/simkai.ttf").generate(word_space_split)
image_colors = ImageColorGenerator(coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

3.运行

先说明一下,如果能看懂代码,知道该怎么把必要的文件弄好,那就不怎么需要看下面这个。

如果看得不太理解,运行前一定要在 E 盘建立一个文件夹。路径是 E:\Python\Wechat ,然后在文件夹中放入一张命名为 toux.jpg 的照片,具体图片看个人喜好。

如何用Python制作微信好友个性签名词云图

最好就是下图这样的照片

如何用Python制作微信好友个性签名词云图

这样生成的词云就会很好看

如何用Python制作微信好友个性签名词云图

意思就是图片要有白色的背景,人物颜色较鲜艳,人物突出(图片分辨率要高)

把代码安装顺序复制到 Pycharm,然后鼠标右键,选择 Run,扫描弹出来的二维码,登录微信网页版,确认后等待一下,看到下图就说明代码运行得很完美,成功运行,没有报错。

如何用Python制作微信好友个性签名词云图

然后稍微等一下就可以看到词云图了。

如何用Python制作微信好友个性签名词云图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python装饰器decorator用法实例
Nov 10 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
Python使用Django实现博客系统完整版
Sep 29 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
Apr 10 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
python 消费 kafka 数据教程
Dec 21 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
Mar 05 Python
详解Python 函数参数的拆解
Sep 02 Python
python判断变量是否为列表的方法
Sep 17 Python
python打包exe开机自动启动的实例(windows)
Jun 28 #Python
python脚本开机自启的实现方法
Jun 28 #Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 #Python
python把转列表为集合的方法
Jun 28 #Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 #Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 #Python
python实现关闭第三方窗口的方法
Jun 28 #Python
You might like
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
python sys模块sys.path使用方法示例
2013/12/04 Python
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python+django实现文件下载
2016/01/17 Python
python导入时小括号大作用
2017/01/10 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
django中的setting最佳配置小结
2017/11/21 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
Python flask框架post接口调用示例
2019/07/03 Python
python安装scipy的步骤解析
2019/09/28 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
公司办公室岗位职责
2014/03/19 职场文书
2015年防汛工作总结
2015/05/15 职场文书
女性健康讲座主持词
2015/07/04 职场文书
汉语拼音教学反思
2016/02/22 职场文书
详解Vue的列表渲染
2021/11/20 Vue.js