您的位置:首页 > 编程语言 > Python开发

Python玩转微信 个性签名生成词云图

2017-10-13 19:44 483 查看
本博客代码参照http://www.cnblogs.com/jiaoyu121/p/6944398.html。

运行如下代码之前,将下图的wechat.jpg放入F盘下,需安装itchat、jieba、matplotlib,numpy和wordcloud这些库。

安装wordcloud库时所有windows用户安装都会遇到问题,有一个非常简单的办法呢就是去到 http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
 这个库的官网下载对应版本的whl,然后进入你存放whl目录下再通过pip安装就能完美解决了,如果还是出现问题请参照下面博客的解决办法http://blog.csdn.net/testcs_dn/article/details/54176504

import itchat
import re

# 先登录,扫二维码登录微信
itchat.login()
#获取好友列表,返回的是json信息
friends = itchat.get_friends(update=True)[0:]
#打印好友列表信息
#print(friends)
tList = []
for i in friends:
# 获取个性签名,替换掉span,class,emoji
signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
# 正则匹配过滤掉emoji表情,例如emoji1f3c3等
rep = re.compile("1f\d.+")
signature = rep.sub("", signature)
tList.append(signature)

# 拼接字符串
text = "".join(tList)

# jieba分词
import jieba
wordlist_jieba = jieba.cut(text, cut_all=True)
wl_space_split = " ".join(wordlist_jieba)

# wordcloud词云
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import os
import numpy as np
import PIL.Image as Image

#d = os.path.dirname(__file__)
#找一张微信logo图来生成配色方案,微信logo图wechat.jpg路径在F:\\盘下
alice_coloring = np.array(Image.open(os.path.join('F:\\','wechat.jpg')))
# 这里要选择字体存放路径,win的字体在C:/windows/Fonts中
"""#my_wordcloud = WordCloud().generate(wl_space_split) 默认构造函数
my_wordcloud = WordCloud(
background_color='white',    # 设置背景颜色
mask = abel_mask,
b16a
# 设置背景图片
max_words = 200,            # 设置最大显示的字数
stopwords = STOPWORDS,        # 设置停用词
font_path = C:/Users/Windows/fonts/simkai.ttf',  # 设置字体格式,如不设置显示不了中文
max_font_size = 50,            # 设置字体最大值
random_state = 30,            # 设置有多少种随机生成状态,即有多少种配色方案
scale=.5
).generate(wl_space_split)"""
my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,
max_font_size=40, random_state=42,
font_path='C:/Windows/Fonts/simhei.ttf')\
.generate(wl_space_split)

image_colors = ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

# 保存图片到F:\\盘下 并发送到手机里的文件传输助手(filehelper)里
my_wordcloud.to_file(os.path.join('F:\\','wechat_cloud.png'))
itchat.send_image("F:\\wechat_cloud.png", 'filehelper')


微信logo图片如下:



生成的个性签名词云图片如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: