热门标签 | 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接口的问题。

图片

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


推荐阅读
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文详细探讨了VxWorks操作系统中双向链表和环形缓冲区的实现原理及使用方法,通过具体示例代码加深理解。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 深入解析:阿里实战 SpringCloud 微服务架构与应用
    本文将详细介绍 SpringCloud 在微服务架构中的应用,涵盖入门、实战和案例分析。通过丰富的代码示例和实际项目经验,帮助读者全面掌握 SpringCloud 的核心技术和最佳实践。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
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社区 版权所有