Python 微信之获取好友昵称并制作wordcloud的实例
时间:2019-02-21
今天小编就为大家分享一篇Python 微信之获取好友昵称并制作wordcloud的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
最近看到网上有人用Python获取微信的一些信息,感觉挺有意思,对于我一个Python刚入门的人来说,正需要一些代码片段来激起我的兴趣,所以自己也写了一些,废话不多说,直接上代码!!!
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的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- 10.13 netfilter5表5链介绍
- 用JAVA测量DEA页面的社交媒体流行度
- Java数组赋值
- 10.12 firewalld和netfilter
- 10.11 Linux网络相关
- 利用Crypto++实现RSA加密算法
- 重学javascript 红皮高程(6)
- WriteUp分享 | LCTF的一道preg_match绕过+出题人的锅
- 利用crypto++库实现AES加密算法
- Android之倒计时CountdownTimer用法
- WriteUp分享 | LCTF的一道padding oracle攻击+sprintf格式化字符串导致的SQL注入
- 10.27 target介绍
- Android 之游戏开发流程
- shell脚本后台运行
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 我和JS文件不得不说的故事
- spring事务管理
- spring配置连接池
- 手把手教学,如何解决 Git 冲突?
- spring的spi
- spring整合ORM框架
- spring的缓存(cache)-本地
- spring的缓存(cache)-分布式缓存
- spring的缓存(cache)-(缓存穿透、缓存击穿、缓存雪崩、热点数据)
- spring-配置文件外化
- 腾讯地图获取全国行政区划检索列表Demo
- iOS开发~UIView layer 之前的关系
- iOS进阶_KVC(&KVC赋值取值过程分析&KVC自定义&异常处理)
- python 学习笔记(8)——python绝对路径相对路径
- 设计模式-访问者模式