最近看到网上有人用python获取微信的一些信息,感觉挺有意思,对于我一个python刚入门的人来说,正需要一些代码片段来激起我的兴趣,所以自己也写了一些,废话不多说,直接上代码!!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
coding:utf - 8
微信好友昵称wordcloud
import itchat
import re
import os
import matplotlib.pyplot as plt
from wordcloud import wordcloud, imagecolorgenerator
import numpy as np
import pil.image as image
import jieba
import time
#以上是我用到的一些库,这些根据个人不同需要安装某些库
#运行到此处会自动生成一个二维码,打开手机微信,扫一扫即可登录
itchat.login()
friends = itchat.get_friends(update = true)[ 0 :]
tlist = []
for i in friends:
#用正则表达式过滤掉 span ,class,emoji。nickname表示微信好友的昵称;
signature = i[ "nickname" ].strip().replace( "span" ," ").replace(" class "," ").replace(" emoji "," ")
rep = re. compile ( "1f\d.+" )
signature = rep.sub("",signature)
print signature
tlist.append(signature)
#拼接字符串
text = "".join(tlist)
#jieba分词
wordlist_jieba = jieba.cut(text,cut_all = true)
wl_space_split = " " .join(wordlist_jieba)
#wordcloud
d = os.path.dirname(__file__)
alice_coloring = np.array(image. open (os.path.join(d, "hot.png" ))) #设置一个背景图片,文章中会附上
my_wordcloud = wordcloud(background_color = "white" ,max_words = 2000 ,mask = alice_coloring,max_font_size = 37 , random_state = 42 ,
font_path = "./handan.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()
time.sleep( 3 )
plt.close() #图片关闭后将图片发送至手机,保存图片,并发送至手机
my_wordcloud.to_file(os.path.join(d, "wechat_cloud.png" ))
itchat.send_image( "wechat_cloud.png" , 'filehelper' )
|
至此,打开你的手机,进入到文件传输助手,你会收到一张图片,这就是使用微信好友昵称制作的词云,下面附上一张我本人的
以上这篇python 微信之获取好友昵称并制作wordcloud的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u013562625/article/details/75647596