关于爬取微信好友签名制作词云时出现的白板问题

本博客代码参考https://blog.youkuaiyun.com/zhonglixianyun/article/details/78229782

http://www.cnblogs.com/jiaoyu121/p/6944398.html

代码如下:

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,        # 设置背景图片
            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')

以上的代码是完全没问题的,但是按照代码,自己打了一遍却发现最后出现的词云图是一片空白,在仔细分析之后,发现漏了一个空格,这个空格很重要。


wl_space_split = " ".join(wordlist_jieba)

就是这里双引号之间一定要添加空格,否则出现的就是白板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值