热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【超超超easy】5分钟:自制酷炫猫咪词云图,会点鼠标即可。

​​导语​真正的猛男,就要~吸猫吸猫!!——————————————————————————————————————​​​hello&

​​导语

图片


真正的猛男,就要~吸猫吸猫!!

——————————————————————————————————————

​​​hello,大家好,我是木子!

有的猫靠颜值,

有的猫靠机灵性格,

但有这么一只猫,靠睡觉能吃,当当当当~隆重为大家介绍这是我养的小团子,

”对!没错,本喵大名叫团子,小名还没取“

​​

​哈哈哈~这两张照片还是很久之前拍的!无聊的时候跟团子玩玩,逗逗猫咪还是很有趣的!心情也会变好撒!

​​

养猫人养猫魂,养猫都是人上人~hhhhhh.

好了!说了这么多的题外话,不过也不算是题外话,今天小编带大家做的跟猫咪还是有点点关系的啦。

制作猫咪版本的词云图~是爬取微信所有好友的个性签名制作而成的哦!

正文

先上效果😍😍

图片

原理简介:

其实很简单的,大家可以通过网页版的微信,扫码登录后去抓包爬取信息,还可以post去发送信息,也可以使用别人做好的微信接口库。

小编这里用的是一个开源的微信个人号接口itchat,作者@LittleCoder,用python搞的,提供的接口很简单,对于懂python的人,估计一会儿就搞定了~

环境安装:

itchat:是一个开源的微信个人号接口。

jieba:是一个强大分词库,支持中文分词。

wordcloud:是一个用词云的库。

#首先安装这三个库吧pip install itchatpip install jiebapip install wordcloud

登陆微信获取好友的个性签名。

itchat.login()friends = itchat.get_friends(update=True)[0:]for i in friends:signature = i["Signature"]点击并拖拽以移动

这里有个问题,有大量span,class,emoji,emoji1f3c3等字段。这都是个性签名的一些表情符号,所以要写个正则表达式过滤掉的没用的信息,然后把每个个性签名都添加到一个列表中,拼接成字符串。修改之后成这样了。

tList = []for i in friends:signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")rep = re.compile("1f\d.+")signature = rep.sub("", signature)tList.append(signature)text = "".join(tList)#接来下用jieba库把字符串进行分词wordlist_jieba = jieba.cut(text, cut_all=True)wl_space_split = " ".join(wordlist_jieba)

然后是绘制词云图啦!喜欢小猫的我当然是以猫咪作为首先,你们的话自由选择,图片素材mao.jpg。

图片

接下来打开目录下Wordcloud生成图片。

d = os.path.dirname(__file__)
alice_coloring = np.array(Image.open(os.path.join(d, "mao.jpg")))

​创建词云对象,其中'C:\Windows\Fonts\SIMLI.TTF'是用于生成词云的字体,对于 mac系统需要更改font路径,比如:/Users/sebastian/Library/Fonts/Arial Unicode.ttf。

my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,max_font_size=40, random_state=42,font_path='C:\Windows\Fonts\SIMLI.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()

教程讲解完了,接下来讲下运行流程吧​咳咳咳~很多新手的小伙伴儿可以注意看下下面的运行操作哈~

(1)调试好代码,运行之后,会弹出一个二维码,微信扫一扫登陆,在手机端确认登陆。

(2)稍等几秒钟,就可以绘制成功了,并弹出Figure展示绘制结果,大家可以在这里调整画面大小并保存图片。

图片

附源码:

# coding:utf-8#导入需要用到的各种库import itchatimport reimport jiebaimport matplotlib.pyplot as pltfrom wordcloud import WordCloud, ImageColorGeneratorimport osimport numpy as npimport PIL.Image as Image#登陆微信,获取好友列表itchat.login()friends = itchat.get_friends(update=True)[0:]tList = []#获取好友个性签名for i in friends:signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")rep = re.compile("1f\d.+")signature = rep.sub("", signature)tList.append(signature)# 拼接字符串text = "".join(tList)# jieba分词wordlist_jieba = jieba.cut(text, cut_all=True)wl_space_split = " ".join(wordlist_jieba)# wordcloud词云# 打开目录下需要Wordcloud生成图片,如:mao.jpgd = os.path.dirname(__file__)alice_coloring = np.array(Image.open(os.path.join(d, "mao.jpg")))#创建词云对象,其中'C:\Windows\Fonts\SIMLI.TTF'是生成词云的对象# 对于 mac系统需要更改font路径,如:/Users/sebastian/Library/Fonts/Arial Unicode.ttfmy_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,max_font_size=40, random_state=42,font_path='C:\Windows\Fonts\SIMLI.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()

​总结

好了,一直可爱的猫就搞定了,大家还可以试试其他图片的词云拼图哦——

​🎊🎊源码基地:关注小编获取哦~💝记得三连吖 免费领取福利以及文章项目源码素材!!

这里有个小问题大家需要注意下,程序执行一次之后,经常会弹出二维码,关掉程序就好了,可能是itchat接口的问题。

图片

“大小姐驾到,统统闪开!”


推荐阅读
  • 申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • 本文详细介绍了在 CentOS 7 系统上安装中文宋体字体的方法,包括操作系统的环境配置、字体管理工具的安装、字体文件的传输与缓存重建等步骤。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文详细介绍了Apache Spark 2.2.0版本中集群模式的基本概念和工作流程,包括如何通过集群管理器分配资源,以及Spark应用程序在集群中的运行机制。链接:http://spark.apache.org/docs/2.2.0/cluster-overview.html ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • Python环境下OpenCV的安装与验证方法
    本文介绍了如何在Python环境中安装OpenCV库及其额外模块,并提供了验证安装是否成功的具体步骤和代码示例。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • 使用Python构建网页版图像编辑器
    本文详细介绍了一款基于Python开发的网页版图像编辑工具,具备多种图像处理功能,如黑白转换、铅笔素描效果等。 ... [详细]
  • OpenText最终从戴尔手中收购了Documentum,这是目前历史最悠久且知名度最高的企业信息存储与检索解决方案之一。作为戴尔企业内容管理(ECM)事业部的一部分,Documentum的此次交易金额为16.2亿美元。 ... [详细]
  • 精选优质开源应用程序
    本文介绍了多个广泛使用的优质开源应用程序,包括内容管理系统(CMS)、电子商务平台和企业资源管理工具等。这些应用不仅功能强大,而且具有高度的可扩展性和社区支持。 ... [详细]
author-avatar
会丶有那么一天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有