网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践
引言
本文将基于前一篇爬取的网易云音乐数据, 利用Python的
wordcloud
、matplotlib
等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state
对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据出发, 生成超酷词云图, 并将其部署到 GitHub Pages 上.
词云预览
▶️ 点击预览词云交互 ◀️
脚本地址:
项目地址: Gazer
utils.py
visualization.py
main.py
代码结构和使用方法
文件结构
Gazer/
├── NeteaseCloudMusicGaze/
│ ├── data/
│ │ ├── processed/
│ │ ├── raw/
│ │ │ └── me_music_data.json
│ │ └── title_stopwords.txt
│ ├── output/
│ │ └── visualizations/
│ ├── src/
│ │ ├── __init__.py # 确保 src 是一个 Python 包
│ │ ├── utils.py # 包含工具函数
│ │ └── visualization.py # 主要的可视化逻辑
│ └── main.py # 程序的入口点, 用于调用 src 中的函数
└── ...
代码结构
-
utils.py
load_stopwords_from_file
从指定文件路径加载停用词列表, 并将其转换为集合. 如果文件不存在, 则返回空集合, 并记录错误日志load_json_data
加载爬取的 JSON 数据文件. 如果文件路径错误或 JSON 格式不正确, 将捕获异常并打印错误信息.load_and_extract_text
从爬取的 JSON 文件加载数据并提取 title 字段(即歌曲名), 将这些值组成一个列表返回. 如果文件加载失败或数据提取失败, 会进行相应的错误处理.
-
visualization.py
generate_wordcloud
根据文本列表生成词云图, 并返回词频字典save_word_frequencies_to_csv
将词频字典保存到 CSV 文件visualize_keywords
调用以上两个函数, 并且可视化关键词数据, 生成词云图并保存词频到 CSV 文件
-
main.py
主脚本, 调用utils.py
和visualization.py
中的函数
使用方法
- 确保已经根据上一篇文档中的方法爬取了相应的数据, 确保 json 文件格式正确, 为一个字典列表.
- 安装依赖:
pip install wordcloud matplotlib jieba numpy
, 或者克隆项目代码后pip install -r requirements.txt
- 修改
main.py
文件中的配置:- 填写
data_path
爬取的 json 文件路径 - 填写
output_dir
输出的词云图和词频 csv 文件路径
- 填写
代码分析
文件读取
之前爬取的 JSON 文件是一个包含多个字典的列表, 那么 load_json_data
函数如果成功加载, 就会返回一个列表, 这个列表里面包含的就是你的 JSON 文件中的那些字典.
以我的 me_music_data.json
为例, 文件内容是这样的(假设只有 2 条):
[{"title": "Common Denominator [Bonus Track]","singer": "Justin Bieber","album": "My World","comment": 3118},{"title": "I Found a Reason","singer": "Cat Power","album": "V for Vendetta","comment": 841}
]
那么 load_json_data
函数加载成功后, 返回的 data
变量就会是一个列表:
data = [{"title": "Common Denominator [Bonus Track]","singer": "Justin Bieber","album": "My World","comment": 3118},{"title": "I Found a Reason","singer": "Cat Power","album": "V for Vendetta","comment": 841}
]
然后你就可以通过索引访问列表中的每一个字典, 例如 data[0]
就是第一个字典, data[1]
就是第二个字典, 以此类推. 并且可以通过键值对的方式访问字典中的每一个值, 例如data[0]["title"]
就是"Common Denominator [Bonus Track]"
.
停用词
为了后续更多的数据处理, 将 TITLE_STOPWORDS
写入文件, 并创建一个函数来读取它.
在 E:\Gazer\NeteaseCloudMusicGaze\data\
目录下手动创建一个名为 title_stopwords.txt
的文本文件, 每个停用词占一行.
这里提供了一些适用于歌名的停用词示例. 为了获得更加精确的可视化效果, 建议你先运行一次 main.py
, 然后根据生成的词频 CSV 文件(例如word_frequencies_me_music_data.csv
), 观察高频出现的、但对你的分析目标没有实际意义的词语, 并将它们添加到 title_stopwords.txt
文件中. 之后再次运行main.py
, 观察词云图的变化.
、
版
feat
翻自
Cover
EDIT
Instrumental
插曲
version
ver
Piano
Mix
丶
WorldCloud
类一些常用参数及其含义和说明
wordcloud = WordCloud(width=960, # 词云图宽度(px), 默认为 400height=600, # 词云图高度(px), 默认为 200background_color=None, # 设置背景颜色为透明, 或自定义如"white", "#000000", 默认为 "black"stopwords=stopwords,font_path=DEFAULT_FONT_PATH,max_words=200, # 词云图中显示的最大词数, 默认为 200max_font_size=100, # 词云图中最大的字体大小, 可以根据你的数据量调整, 默认为None, 表示自动根据词频调整random_state=42, # 随机数种子, 用于控制词云图的布局, 设置相同的值可以得到相同的布局mode="RGBA" # 颜色模式, "RGB" 或 "RGBA", 默认为 "RGB" # ... 还有很多其他参数, 具体可以参考官方文档
)
这些参数都不需要你全部设置, 只有在你需要自定义某些效果的时候设置就行了. 你可以根据自己的需求调整这些参数, 生成各种各样的词云图.
wordcloud.generate(text)
: 根据文本生成词云. 这一步会根据传入的文本text
, 统计词频, 应用停用词, 计算每个词的位置和大小, 最终生成词云图. 但是这个时候词云图还在内存里. 这里面的text
就是所有歌名使用空格连接起来的一个超级长的字符串.wordcloud.to_file(output_path)
: 将生成的词云图保存到文件. 这一步将内存中的词云图渲染成图片, 并保存到指定的路径output_path
.wordcloud.words_
: 获取词云中每个词及其对应的归一化频率. 这是一个字典属性, 包含了生成词云图的词语及其频率信息, 后续save_word_frequencies_to_csv
函数会使用这个字典属性.
简单来说, 这三行代码完成了“根据文本生成词云图”、“将词云图保存到文件”和“获取词频数据”这三个操作.
关于 random_state
随机种子
random_state
参数用于控制 wordcloud
库在生成词云图时涉及到的随机过程. 这些随机过程包括:
- 词语位置的随机扰动:为了避免词语重叠,
wordcloud
会在一定范围内随机调整词语的位置. - 词语颜色的随机选择:如果没有指定每个词的颜色,
wordcloud
会从一个颜色列表中随机选择颜色.
random_state
的作用就是控制这些随机过程的可重复性.
- 如果你设置了
random_state
为一个固定的整数(例如 42, 或者其他任何整数), 那么每次运行代码时, 只要其他参数相同, 生成的词云图布局和颜色都会是一样的. 这对于调试代码、复现结果、保持结果一致性非常有用. - 如果你不设置
random_state
, 或者将其设置为None
, 那么每次运行代码时, 词云图的布局和颜色都会随机变化.
42
这个数字本身并没有什么特殊的含义, 你可以把它设置为任何你喜欢的整数. 大家经常用 42
, 可能是因为道格拉斯·亚当斯在他的科幻小说《银河系漫游指南》中说 “The Answer to the Ultimate Question of Life, the Universe, and Everything is 42” .
想来点不一样的?
-
如果你想每次生成的词云图都不同, 就不要设置
random_state
, 或者设置为None
. -
如果你想尝试几种不同的布局, 但又希望每次运行代码时这几种布局能够固定下来, 你可以尝试几个不同的
random_state
值, 例如1
、2
、3
, 看看哪个布局你最喜欢, 然后就固定使用那个值.不同的 random_state 值的布局预览
生成这些预览图需要实际运行代码, 并设置不同的
random_state
值.这里提供一段代码, 让你能够自己生成并比较不同
random_state
值对应的词云图:from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt import os from typing import List, Dict import csv from src.utils import load_json_data, load_and_extract_text, load_stopwords_from_file# 常量定义 (根据你的实际情况修改) WORD_HEADER = "Word" FREQUENCY_HEADER = "Frequency" DEFAULT_FONT_PATH = "msyh.ttc" TITLE_STOPWORDS_PATH = r"E:\Gazer\NeteaseCloudMusicGaze\data\title_stopwords.txt" DATA_PATH = r"E:\Gazer\NeteaseCloudMusicGaze\data\raw\me_music_data.json" OUTPUT_DIR = r"E:\Gazer\NeteaseCloudMusicGaze\output\visualizations"def generate_wordcloud(text_list: List[str], output_path: str, stopwords: set = None, random_state=None) -> Dict[str, float]:# 为了演示, 我把 random_state 提到这里了"""根据文本列表生成词云图, 并返回词频字典. (文档字符串的其他部分保持不变)"""text = " ".join(text_list)if stopwords is None:stopwords = set(STOPWORDS)title_stopwords = load_stopwords_from_file(TITLE_STOPWORDS_PATH)stopwords.update(title_stopwords)wordcloud = WordCloud(width=960,height=600,background_color=None,stopwords=stopwords,font_path=DEFAULT_FONT_PATH,max_words=200,max_font_size=100,random_state=random_state, # 使用传入的 random_statemode="RGBA")wordcloud.generate(text)wordcloud.to_file(output_path)return wordcloud.words# 其他函数 (save_word_frequencies_to_csv, visualize_keywords) 保持不变if __name__ == "__main__":text_list = load_and_extract_text(DATA_PATH)os.makedirs(OUTPUT_DIR, exist_ok=True)# 尝试不同的 random_state 值for i in range(1, 6): # 生成 5 个不同的 random_state 的结果output_path = os.path.join(OUTPUT_DIR, f"wordcloud_random_state_{i}.png")generate_wordcloud(text_list, output_path, random_state=i)print(f"已生成词云图:{output_path}")
这段代码会生成 5 个词云图, 分别对应
random_state
值为 1、2、3、4、5 的情况. 你可以查看这些图片, 比较它们的布局差异.
visualize_keywords
这个函数是否重复了前两个函数的功能?
visualize_keywords
函数确实调用了 generate_wordcloud
和 save_word_frequencies_to_csv
这两个函数, 但它并不是简单地重复它们的功能, 而是**将它们组合起来, 形成一个更高级别的功能:从原始数据文件出发, 生成词云图和对应的词频 CSV 文件. **
可以这样理解:
generate_wordcloud
负责根据文本生成词云图, 并返回词频数据.save_word_frequencies_to_csv
负责将词频数据保存到 CSV 文件.visualize_keywords
负责统筹安排, 它首先调用load_and_extract_text
从数据文件提取文本, 然后调用generate_wordcloud
生成词云图和获取词频, 最后调用save_word_frequencies_to_csv
将词频保存到文件.
visualize_keywords
函数的作用是对数据进行可视化, 属于数据分析和数据可视化的高级功能, generate_wordcloud
和 save_word_frequencies_to_csv
只是可视化过程中的步骤. 这样划分可以让代码的逻辑更清晰, 也更易于维护和扩展.
你可以把 generate_wordcloud
和 save_word_frequencies_to_csv
看作是工具函数, 它们分别负责生成词云和保存词频这两个独立的任务. 而 visualize_keywords
则是一个更高级别的函数, 它利用这两个工具函数来完成一个更复杂的目标.
使用 wordart 获取更美观的词云可视化, 并使用 github-pages 部署
wordart 提供了可高度自定义的词云图, 可以使用生成的 csv 导入词频自定义词云颜色, 形状等. 完成后, 点 SAVE
, 然后点 Share
将当前作品设置为公开, 点 Webpage
复制 iframe
标签.
<iframe style="width:100%; height: 100%; border: none" src="https://cdn.wordart.com/iframe/qfwzk59spavk"></iframe>
将iframe
标签放进创建的 HTML 文件的 body
中, 使用 Cursor
/ VS Code
的 Live Server 打开. 按 Ctrl+S
保存 HTML 到本地, 命名为 index.html, 以便后续在 github-pages 中部署. 这时也会自动下载一个文件夹 index_files
, 包含 qfwzk59spavk.html
和 wordart.min.js.下载
. 此时可以直接用本地浏览器打开 index.html
, 也可以获取鼠标和词云的交互功能.
这个方法完美地绕过了编码问题和 cdn.wordart.com
的访问限制, 直接将你在 Live Server 中看到的、已经渲染好的、包含交互式词云的页面完整地保存到了本地.
需要注意的地方:
- Live Server 的依赖: 这种方法依赖于 Live Server 能够正确地渲染你的网页. 如果你的网页在 Live Server 中显示有问题, 那么保存下来的网页也会有问题.
iframe
的内容: 这种方法会将iframe
中的内容 (也就是qfwzk59spavk.html
) 也一起保存下来. 这通常是没问题的, 但如果iframe
中的内容非常大, 或者你不希望将iframe
的内容保存到本地, 那么你需要手动编辑保存后的 HTML 文件, 删除iframe
相关的代码.- 如果你之后需要部署到 GitHub, 你仍需检查
index.html
中的文件路径是否正确.
确保你已经为你的仓库开启 GitHub pages:
可以点击 开启 GitHub pages 教程 查看
开启后直接 push 到仓库同步, 等待 pages 部署完毕就能在 https://YourGithubUserName.github.io/RepositoryName/
看到可交互式词云已经成功部署到网站.
相关文章:
网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践
引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…...
Web-3.0(Solidity)基础教程
Solidity 是 以太坊智能合约编程语言,用于编写 去中心化应用(DApp)。如果你想开发 Web3.0 应用,Solidity 是必学的。 Remix - Ethereum IDE(在线编写 Solidity) 特性Remix IDEHardhat适用场景适合 初学者 …...
android获取EditText内容,TextWatcher按条件触发
android获取EditText内容,TextWatcher按条件触发 背景:解决方案:效果: 背景: 最近在尝试用原生安卓实现仿element-ui表单校验功能,其中涉及到EditText组件内容的动态校验,初步实现功能后&#…...
题单:冒泡排序1
题目描述 给定 n 个元素的数组(下标从 1 开始计),请使用冒泡排序对其进行排序(升序)。 请输出每一次冒泡过程后数组的状态。 要求:每次从第一个元素开始,将最大的元素冒泡至最后。 输入格式…...
我的毕设之路:(2)系统类型的论文写法
一般先进行毕设的设计与实现,再在现成毕设基础上进行描述形成文档,那么论文也就成形了。 1 需求分析:毕业设计根据开题报告和要求进行需求分析和功能确定,区分贴合主题的主要功能和拓展功能能,删除偏离无关紧要的功能…...
JVM_类的加载、链接、初始化、卸载、主动使用、被动使用
①. 说说类加载分几步? ①. 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 第一过程的加载(loading)也称为装载验证、准备、解析3个部分统称为链接(Linking)在Java中数据类型分为基本数据类型和引用数据…...
数论问题79一一研究成果
(豆包智能搜索一一李扩继) 李扩继是一位在数学研究尤其是哥德巴赫猜想研究领域有一定成果的中学老师,以下是关于他的具体介绍: ①研究经历:2006年承担咸阳市教研室的立项课题《角谷猜想的研究》,虽未完成角谷猜想的证明ÿ…...
【DeepSeek-V3】AI Model Evaluation Framework and index schedule AI模型能力评价指标及对比
文章目录 AI 模型评估体系 | AI Model Evaluation Framework1. 模型架构信息 | Model Architecture Information2. 英语能力评估 | English Language Proficiency3. 编程能力评估 | Programming Capability Metrics4. 数学能力评估 | Mathematical Capability Assessment5. 中文…...
《程序人生》工作2年感悟
一些杂七杂八的感悟: 1.把事做好比什么都重要, 先树立量良好的形象,再横向发展。 2.职场就是人情世故,但也不要被人情世故绑架。 3.要常怀感恩的心,要记住帮助过你的人,愿意和你分享的人,有能力…...
Elasticsearch的开发工具(Dev Tools)
目录 说明1. **Console**2. **Search Profiler**3. **Grok Debugger**4. **Painless Lab**总结 说明 Elasticsearch的开发工具(Dev Tools)在Kibana中提供了多种功能强大的工具,用于调试、优化和测试Elasticsearch查询和脚本。以下是关于Cons…...
22_解析XML配置文件_List列表
解析XML文件 需要先 1.【加载XML文件】 而 【加载XML】文件有两种方式 【第一种 —— 使用Unity资源系统加载文件】 TextAsset xml Resources.Load<TextAsset>(filePath); XmlDocument doc new XmlDocument(); doc.LoadXml(xml.text); 【第二种 —— 在C#文件IO…...
智慧园区管理平台实现智能整合提升企业运营模式与管理效率
内容概要 在当今数字化的背景下,智慧园区管理平台正逐渐成为企业提升运营效率和管理模式的重要工具。这个平台汇聚了多种先进技术,旨在通过智能整合各类资源与信息,帮助企业实现全面的管理创新。 智慧园区管理平台不仅仅是一个数据处理工具…...
从规则到神经网络:机器翻译技术的演进与未来展望
从规则到神经网络:机器翻译技术的演进与未来展望 引言 还记得早些年用翻译软件翻译一句简单的英文句子,却发现翻译结果让人啼笑皆非的日子吗?从“我喜欢吃苹果”被翻译成“我喜欢吃苹果电脑”,到今天的神经网络机器翻译(Neural Machine Translation, NMT)能够生成语义流…...
[MySQL]事务的隔离级别原理与底层实现
目录 1.为什么要有隔离性 2.事务的隔离级别 读未提交 读提交 可重复读 串行化 3.演示事务隔离级别的操作 查看与设置事务的隔离级别 演示读提交操作 演示可重复读操作 1.为什么要有隔离性 在真正的业务场景下,MySQL服务在同一时间一定会有大量的客户端进程…...
hdfs:介绍三个脚本
1、jps-cluster.sh 如果我们想在Bigdata01 这台电脑上,查看整个集群的服务启动情况,可以使用这个脚本文件。 #!/bin/bash USAGE"使⽤⽅法:sh jps-cluster.sh" NODES("bigdata01" "bigdata02" "bigdata03…...
【Oracle篇】使用Hint对优化器的执行计划进行干预(含单表、多表、查询块、声明四大类Hint干预)
💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…...
【Rust自学】15.7. 循环引用导致内存泄漏
说句题外话,这篇文章真心很难,有看不懂可以在评论区问,我会尽快作答的。 喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω…...
4.scala默认参数值
Scala具备给参数提供默认值的能力,这样调用者就可以忽略这些具有默认值的参数。 def log(message: String, level: String "INFO") println(s"$level: $message")log("System starting") // prints INFO: System starting log(&q…...
前端知识速记—JS篇:null 与 undefined
前端知识速记—JS篇:null 与 undefined 什么是 null 和 undefined? 1. undefined 的含义 undefined 是 JavaScript 中默认的值,表示某个变量已被声明但尚未被赋值。当尝试访问一个未初始化的变量、函数没有返回值时,都会得到 u…...
微信小程序中常见的 跳转方式 及其特点的表格总结(wx.navigateTo 适合需要返回上一页的场景)
文章目录 详细说明总结wx.navigateTo 的特点为什么 wx.navigateTo 最常用?其他跳转方式的使用频率总结 以下是微信小程序中常见的跳转方式及其特点的表格总结: 跳转方式API 方法特点适用场景wx.navigateTowx.navigateTo({ url: 路径 })保留当前页面&…...
【人工智能】基于Python的机器翻译系统,从RNN到Transformer的演进与实现
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器翻译(Machine Translation, MT)作为自然语言处理领域的重要应用之一,近年来受到了广泛的关注。在本篇文章中,我们将详细探讨如何使…...
蓝桥备赛指南(5)
queue队列 queue是一种先进先出的数据结构。它提供了一组函数来操作和访问元素,但它的功能相对较简单,queue函数的内部实现了底层容器来存储元素,并且只能通过特定的函数来访问和操作元素。 queue函数的常用函数 1.push()函数:…...
蓝桥云客 好数
0好数 - 蓝桥云课 问题描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位…)上的数字是奇数,偶数位(十位、千位、十万位…)上的数字是偶数,我们就称之为“好数”。 给定一个正…...
CF 764B.Timofey and cubes(Java实现)
题目分析 输入n个数字,首尾交换,奇数对换,偶数对不换 思路分析 存入数组,遍历时判断i%20时(数组下标0开始,所以题目分析没有错),对换 代码 import java.util.*;public class Main {public static void ma…...
四.3 Redis 五大数据类型/结构的详细说明/详细使用( hash 哈希表数据类型详解和使用)
四.3 Redis 五大数据类型/结构的详细说明/详细使用( hash 哈希表数据类型详解和使用) 文章目录 四.3 Redis 五大数据类型/结构的详细说明/详细使用( hash 哈希表数据类型详解和使用)2.hash 哈希表常用指令(详细讲解说明)2.1 hset …...
AIGC(生成式AI)试用 20 -- deepseek 初识
>> 基本概念 Ollama -- 运行大模型,管理运行AI大模型的工具,用来安装布置DeepSeek https://ollama.com/ , Get up and running with large language models. AnythingLLM -- 大模型增强应用,GUI大模型交互程序 Download AnythingLLM …...
你好!这是我自己的CSDN博客!
写于2025年1月30日 我是一个普通的嵌入式软件程序员,喜欢研究Linux(应用层跟内核从都有粗浅的涉略),单片机,操作系统和计算机体系架构等内容,目前是一枚普通的本科生。 笔者是一个朴素的开源主义者…...
将pandas.core.series.Series类型的小数转化成百分数
大年初二,大家过年好,蛇年行大运! 今天在编写一个代码的时候,使用 import pandas as pd产生了pandas.core.series.Series类型的数据,里面有小数,样式如下: 目的:将这些小数转化为百…...
[EAI-027] RDT-1B,目前最大的用于机器人双臂操作的机器人基础模型
Paper Card 论文标题:RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation 论文作者:Songming Liu, Lingxuan Wu, Bangguo Li, Hengkai Tan, Huayu Chen, Zhengyi Wang, Ke Xu, Hang Su, Jun Zhu 论文链接:https://arxiv.org/ab…...
oracle中使用in 和 not in 查询效率分析
在Oracle数据库中,IN和NOT IN的查询效率受多种因素影响,以下是关键点总结和优化建议: 1. IN 的效率 优化方式: IN 通常会被优化为 OR条件 或 半连接(Semi-Join),如果子查询关联到外部表&#x…...
【python】四帧差法实现运动目标检测
四帧差法是一种运动目标检测技术,它通过比较连续四帧图像之间的差异来检测运动物体。这种方法可以在一定的程度上提高检测的准确性。 目录 1 方案 2 实践 ① 代码 ② 效果图 1 方案 具体的步骤如下: ① 读取视频流:使用cv2.VideoCapture…...
指针的介绍4【回调函数、qsort函数的运用】
1.回调函数 1.1定义 回调函数就是通过函数指针而被调用的函数 把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数 时,被调⽤的函数就是回调函数 回调函数不是由该函数的实现⽅直接调⽤࿰…...
Attention Free Transformer (AFT)-2020论文笔记
名称: Attention Free Transformer (AFT) 来源: [2105.14103] An Attention Free Transformer 相关工作: #Approximatingthedotproduct #Sparselocalattention #Contextcompression #Eliminatingdotproductattention #MLPsforvision 创…...
Pyside的QWebEngineProfile类
QWebEngineProfile 是 PySide/Qt 中用于管理浏览器引擎(WebEngine)配置的类,属于 QtWebEngineCore 模块。它主要用于控制网页的全局行为,例如缓存、Cookie、持久化存储、用户代理(User-Agent)、代理设置等。…...
Java继承中的静态方法隐藏与实例变量隐藏:深入解析与最佳实践
引言 在Java面向对象编程中,继承是实现代码复用的核心机制。然而,继承中的静态方法(static)和实例变量的行为常常让开发者感到困惑。许多初学者甚至经验丰富的程序员容易混淆方法覆盖(Override)、方法隐藏…...
day6手机摄影社区,可以去苹果摄影社区学习拍摄技巧
逛自己手机的社区:即(手机牌子)摄影社区 拍照时防止抖动可以控制自己的呼吸,不要大喘气 拍一张照片后,如何简单的用手机修图? HDR模式就是让高光部分和阴影部分更协调(拍风紧时可以打开&…...
从AD的原理图自动提取引脚网络的小工具
这里跟大家分享一个我自己写的小软件,实现从AD的原理图里自动找出网络名称和引脚的对应。存成文本方便后续做表格或是使用简单行列编辑生成引脚约束文件(如.XDC .UCF .TCL等)。 我们在FPGA设计中需要引脚锁定文件,就是指示TOP层…...
H3CNE-31-BFD
Bidirectional Forwarding Dection,双向转发检查 作用:毫秒级故障检查,通常结合三层协议(静态路由、vrrp、ospf、BGP等),实现链路故障快速检查。 BFD配置示例 没有中间的SW,接口downÿ…...
Linux安装zookeeper
1, 下载 Apache ZooKeeperhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apa…...
QPS 值是怎样进行计算和应用的
1. QPS 值的定义 QPS(Queries Per Second),即每秒查询率,指一台服务器每秒能够相应 的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。它表示系统在某一特定时间内能够处理的查询请求的数量…...
【视频+图文详解】HTML基础4-html标签的基本使用
图文教程 html标签的基本使用 无序列表 作用:定义一个没有顺序的列表结构 由两个标签组成:<ul>以及<li>(两个标签都属于容器级标签,其中ul只能嵌套li标签,但li标签能嵌套任何标签,甚至ul标…...
内外网文件摆渡企业常见应用场景和对应方案
在如今的企业环境中,内外网文件摆渡的需求越来越常见,也变得越来越重要。随着信息化的不断推进,企业内部和外部之间的数据交换越来越频繁,如何安全、高效地进行文件传输成了一个关键问题。今天,咱就来聊聊内外网文件摆…...
基于微信小程序的新闻资讯系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
透视B/S架构与C/S架构:构建未来网络应用的智慧选择
透视B/S架构与C/S架构:构建未来网络应用的智慧选择 在信息技术迅猛发展的今天,网络架构的选择对企业和开发者来说至关重要。B/S架构(Browser/Server)与C/S架构(Client/Server)是两种主流的架构模式&#x…...
受击反馈HitReact、死亡效果Death Dissolve、Floating伤害值Text(末尾附 客户端RPC )
受击反馈HitReact 设置角色受击标签 (GameplayTag基本了解待补充) 角色监听标签并设置移动速度 创建一个受击技能,并应用GE 实现设置角色的受击蒙太奇动画 实现角色受击时播放蒙太奇动画,为了保证通用性,将其设置为一个函数,并…...
【网络】3.HTTP(讲解HTTP协议和写HTTP服务)
目录 1 认识URL1.1 URI的格式 2 HTTP协议2.1 请求报文2.2 响应报文 3 模拟HTTP3.1 Socket.hpp3.2 HttpServer.hpp3.2.1 start()3.2.2 ThreadRun()3.2.3 HandlerHttp() 总结 1 认识URL 什么是URI? URI 是 Uniform Resource Identifier的缩写&…...
mysql_init和mysql_real_connect的形象化认识
解析总结 1. mysql_init 的作用 mysql_init 用于初始化一个 MYSQL 结构体,为后续数据库连接和操作做准备。该结构体存储连接配置及状态信息,是 MySQL C API 的核心句柄。 示例: MYSQL *conn mysql_init(NULL); // 初始化连接句柄2. mysql_…...
01.01、判定字符是否唯一
01.01、[简单] 判定字符是否唯一 1、题目描述 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 在这一题中,我们的任务是判断一个字符串 s 中的所有字符是否全都不同。我们将讨论两种不同的方法来解决这个问题,并详细解释每种方法…...
[NOIP2007]矩阵取数游戏
点我写题 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2.每次取走的…...
C++模板初识
文章目录 一、函数模板1. 函数模板2. 函数模板、模板的特例化、非模板函数的重载关系3. 外部调用4. 模板的非类型参数5. 代码示例 二、类模板 一、函数模板 1. 函数模板 模板函数:在函数调用点,编译器用用户指定的类型,从原模板实例化一份函…...