如何用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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
Python Tkinter GUI编程入门介绍
Mar 10 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
Python中for循环和while循环的基本使用方法
Aug 21 Python
解决python2.7 查询mysql时出现中文乱码
Oct 09 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
Python多线程threading和multiprocessing模块实例解析
Jan 29 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
python如何为创建大量实例节省内存
Mar 20 Python
Python生成rsa密钥对操作示例
Apr 26 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
python实现超级马里奥
Mar 18 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.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
php 表单数据的获取代码
2009/03/10 PHP
php模板中出现空行解决方法
2011/03/08 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
php简单生成随机数的方法
2015/07/30 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
Python实现一个简单的验证码程序
2017/11/03 Python
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
简历的自我评价范文
2014/02/04 职场文书
信息总监管理职责范本
2014/03/08 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
2015年党性分析材料
2014/12/19 职场文书
圣诞节开幕词
2015/01/29 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
党员转正大会主持词
2015/07/02 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python