Echarts词云wordcloud实战:从配置到创意展示
1. 从零开始你的第一个Echarts词云嘿朋友们今天咱们来聊聊一个既酷炫又实用的数据可视化工具——Echarts词云。你可能在不少数据分析报告、产品介绍或者个人博客里见过它那些大小不一、错落有致的文字直观地展示了关键词的热度。用Echarts来实现词云不仅效果好而且对于有一定前端基础的开发者来说上手门槛其实并不高。我刚开始接触的时候也以为会很复杂但实际捣鼓下来发现核心的配置就那么几块。咱们今天的目标就是让你能在一个下午的时间里从完全不懂到能做出一个像模像样的、甚至可以拿去展示的词云图。整个过程我会把我踩过的坑、试出来的小技巧都分享给你保证你跟着做一遍就能明白。首先咱们得把“地基”打好。Echarts词云并不是Echarts官方核心库自带的功能它是一个扩展插件名字就叫echarts-wordcloud。这意味着你需要准备两个东西Echarts主库和这个词云插件库。这里有个特别需要注意的版本兼容性问题也是我当初遇到的第一个坑echarts-wordcloud插件目前只支持到 Echarts 的 3.x 版本。而你现在去Echarts官网默认下载的已经是4.x、5.x甚至更高版本了。如果你用新版本的Echarts去搭配老版本的词云插件页面会直接报错图表出不来。那怎么办呢别慌。你需要去GitHub上找到echarts-wordcloud的仓库把插件代码下载下来同时也需要去找一个Echarts 3.x的版本。我通常的做法是在项目中通过CDN引入一个明确版本的Echarts 3比如!-- 引入 ECharts 3.x 核心库 -- script srchttps://cdn.jsdelivr.net/npm/echarts3.8.5/dist/echarts.min.js/script !-- 引入 echarts-wordcloud 插件 -- script src./lib/echarts-wordcloud.min.js/script注意引入的顺序一定是先引入Echarts再引入词云插件。准备好这两个库之后在页面上准备一个用来装词云的容器一个简单的div就行记得给它设置好宽度和高度。div idwordCloudChart stylewidth: 800px; height: 500px;/div接下来就是最核心的JavaScript部分了。初始化图表、设置配置项这些步骤和用Echarts画其他图表是一样的。我们来写一个最简单的词云配置// 基于准备好的dom初始化echarts实例 var myChart echarts.init(document.getElementById(wordCloudChart)); // 指定图表的配置项和数据 var option { series: [{ type: wordCloud, // 类型必须指定为wordCloud shape: circle, // 词云的整体形状比如圆形、矩形 sizeRange: [12, 60], // 文字大小的范围最小12px最大60px rotationRange: [-45, 90], // 文字旋转角度的范围 gridSize: 8, // 网格大小用来控制文字布局的密度 drawOutOfBound: false, // 是否允许绘制超出画布边界的词 textStyle: { normal: { fontFamily: sans-serif, fontWeight: bold, // 颜色可以是一个随机函数让词云色彩更丰富 color: function () { return rgb( [ Math.round(Math.random() * 160 50), // R Math.round(Math.random() * 160 50), // G Math.round(Math.random() * 160 50) // B ].join(,) ); } } }, // 词云的数据一个包含name和value的数组 data: [ { name: 数据分析, value: 100 }, { name: 可视化, value: 90 }, { name: JavaScript, value: 80 }, { name: ECharts, value: 70 }, { name: 编程, value: 60 }, { name: 前端开发, value: 50 }, // ... 可以添加更多数据 ] }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option);把这段代码复制到你的HTML文件里用浏览器打开你就能看到第一个词云图了词的大小由value值决定value越大词显示得就越大。颜色是随机生成的每次刷新可能都会有点不同。到这一步恭喜你基础框架已经搭好了。但这只是个开始默认的样式可能离“酷炫”还有点距离。别急接下来的部分我们会深入每个参数看看怎么把它调校得既专业又好看。2. 核心配置参数详解与调优好了现在咱们的词云能跑起来了但它可能看起来有点“朴素”或者布局不太理想。这一节我们就来当一回“调音师”把Echarts词云的每一个核心参数都掰开揉碎了讲清楚。你完全可以把这节当成一个参数手册遇到问题随时回来查。首先咱们得理解词云是怎么“画”出来的。你可以想象插件内部有一个一个的小格子网格它尝试把每一个词放到这些格子里。gridSize这个参数就决定了格子的大小。gridSize值越小格子就越密集词与词之间的空隙就越小排列可以更紧凑值越大格子就越稀疏词之间的留白会更多。我实测下来对于大多数展示场景设置在6到12之间是比较舒服的。如果你发现词和词重叠得太厉害试着把gridSize调大一点如果词云中间空了一大片显得很稀疏那就把gridSize调小。接下来是控制词大小的sizeRange。它是一个包含两个数字的数组比如[12, 60]。第一个数是最小字体大小像素第二个是最大字体大小。这里有个常见的误解很多人以为value最大的词就会是60px最小的词就是12px中间的值按比例缩放。但实际上插件会根据所有词的value进行一种“归一化”计算再映射到这个大小范围。所以你不需要担心你的value是100还是10000插件会自动处理比例。你需要关注的是最小字要能看清最大字不要过于夸张撑满屏幕。让词云生动起来的一个关键参数是rotationRange它控制词的旋转角度。比如[-45, 90]意味着词可以从-45度旋转到90度。你可以设置一个范围也可以设置一个固定的角度数组比如[0, 45, 90]这样词就只会有水平、45度倾斜和垂直三种状态。我的经验是给一个范围比给几个固定值看起来更自然像[-30, 60]这样的不对称范围能避免所有词都朝着几个固定方向显得死板。然后我们来看看shape参数它决定了词云的整体轮廓。最常用的是circle圆形和rect矩形也就是填满整个画布。但它的能力不止于此它还可以是一个用SVG路径描述的字符串或者一个函数。这意味着你可以把词云做成任何形状比如心形、星形甚至是你公司的Logo轮廓这是实现创意展示的一个大招我们在后面章节会详细讲怎么玩转这个功能。textStyle是定义文字样式的对象这里的学问也很大。在normal状态下你可以设置字体、粗细。颜色color属性特别强大它除了接受像red、#ff0000这样的固定值更常用的是接受一个函数。这个函数会在绘制每个词的时候被调用你可以根据词的value、name甚至索引来动态决定它的颜色。比如你可以让值大的词用暖色调红、橙值小的词用冷色调蓝、绿这样视觉层次会更分明。最后提一下drawOutOfBound这个参数默认是false意思是如果一个词太大超出了我们设定的画布形状比如圆形它就不会被画出来。如果你设为true那么即使超出形状边界这个词也会被绘制可能只显示一部分。我强烈建议在大多数情况下保持false这样可以保证词云轮廓的整洁。如果你发现某个重要的高频词莫名其妙消失了检查一下是不是因为它太大了被这个参数给“裁剪”掉了。把这些参数比作厨师手里的调料盐 (gridSize)、火候 (sizeRange)、摆盘 (rotationRange,shape)、酱汁 (textStyle)。不同的菜数据需要不同的调配比例。多试几次你就能找到最适合你当前数据的那组“黄金参数”。3. 搞定常见问题与性能优化代码跑起来了参数也调了但现实项目里总会遇到些“幺蛾子”。这一节咱们就来集中解决那些你可能马上就会碰到的头疼问题顺便聊聊怎么让词云跑得更快、更稳。这些都是我实打实踩过坑总结出来的希望能帮你省下几个小时甚至几天的调试时间。第一个高频问题词云不显示或者只显示一部分词。遇到这种情况别急着怀疑人生按这个顺序排查打开浏览器开发者工具F12看控制台Console有没有红色报错。这是最快的方法。如果看到“echarts-wordcloudis not a function”或者“xxxis not defined”这类错误99%是版本不兼容或者引入顺序错了。请务必确认你用的是Echarts 3.x并且先引入echarts.js再引入echarts-wordcloud.js。检查数据格式。data数组里的每个对象必须要有name和value这两个字段名字一个字母都不能错。value应该是数字类型如果你从后端API获取的数据是字符串记得用parseInt()或parseFloat()转换一下。检查容器和初始化。确保你的div容器有正确的id并且这个id和document.getElementById()里写的一致。同时确保你的初始化代码echarts.init()是在DOM元素加载完成之后执行的。最简单的做法就是把脚本放在body末尾或者用$(document).ready()/window.onload包裹起来。第二个问题词云布局混乱词重叠严重或者空隙太大。这通常和gridSize、sizeRange以及数据本身有关。如果词的数量非常多比如超过200个默认的gridSize可能就不够用了。你需要适当增大gridSize比如从8调到15甚至20给每个词更多的“地盘”。相反如果词很少比如不到20个却显得很稀疏可以减小gridSize并适当扩大sizeRange中最大字体让有限的词也能撑起场面。检查你的value值差异是否过于悬殊。比如一个词value是10000其他词都是10。这种情况下那个大词会占据绝对主导其他词小得像沙子。考虑对数据进行预处理比如对所有value取对数Math.log或者开平方根来平滑数值之间的巨大差距让布局更均衡。第三个问题页面卡顿尤其是数据量大或者频繁刷新时。词云的布局计算是比较消耗性能的。这里有几个优化技巧数据抽样。如果你的原始数据有几千条没必要全部显示。可以按value排序后只取前100或前150个最重要的词。对于词云来说展示核心关键词比展示全部关键词更重要视觉上也更清晰。防抖与节流。如果词云需要根据用户输入比如搜索框实时更新千万不要在每次输入变化时都重新渲染。使用防抖debounce函数比如用户停止输入300毫秒后再触发更新能极大减少不必要的计算。使用Web Worker。对于超大数据集比如上千条的复杂形状词云布局计算可能会阻塞页面主线程导致页面暂时无响应。一个高级的优化方案是将词云布局的计算任务丢给Web Worker在后台线程完成计算后再把结果返回给主线程进行绘制。这样能保证页面的流畅交互。不过这个方案实现起来稍复杂适合对性能有极致要求的场景。第四个问题如何动态更新词云数据比如你有一个按钮点击后切换另一组数据。Echarts提供了优雅的API。你不需要销毁图表再重建只需要获取新的data数组然后通过setOption更新对应的series.data即可。为了有平滑的过渡效果你可以先清空动画。function updateWordCloud(newData) { // 获取当前的option var currentOption myChart.getOption(); // 只更新series[0]的data currentOption.series[0].data newData; // 使用新的option并设置notMerge为true完全替换或者false合并 myChart.setOption(currentOption, true); // true表示不合并完全替换 }把这些问题的解决方案装进你的工具箱下次再遇到时你就能从容不迫地定位和解决了。记住调试的过程也是理解其工作原理的过程。4. 进阶玩法从形状到颜色的创意设计基础功能玩熟了就该追求点“艺术感”了。一个出色的词云不仅能传达数据更能成为视觉焦点。这一章咱们抛开默认的圆形矩形聊聊怎么让词云“改头换面”玩出创意和品牌感。首先是自定义形状这是让词云脱颖而出的杀手锏。shape参数除了接受circle、rect这样的字符串还能接受一个SVG Path 字符串。你可以去一些免费的矢量图标网站比如 iconfont、Flaticon找一个你喜欢的图标下载它的SVG格式。用文本编辑器打开SVG文件找到path标签里的d属性那一长串由字母和数字组成的命令就是SVG路径。把它复制出来去掉换行作为shape的值。举个例子如果你想做一个心形的词云shape: path://M511.994,95.642c-141.385-143.724-380.556-143.724-521.941,0c-141.385,143.724-141.385,380.556,0,524.28c141.385,143.724,380.556,143.724,521.941,0C653.379,476.198,653.379,239.366,511.994,95.642z看到path://这个前缀了吗这是Echarts里使用SVG路径的固定写法。把这段代码替换掉原来的shape: circle刷新页面你会发现词云被约束在了一个心形轮廓里你可以用任何SVG路径比如动物、字母、Logo瞬间就能做出极具个性化的设计。其次是颜色的高级玩法。我们之前用随机函数生成颜色虽然方便但缺乏设计感。更专业的做法是定义一套配色方案。比如你可以准备一组渐变色让词的颜色根据其value值在渐变中取色。color: function (params) { // 假设我们有一个从蓝色到红色的渐变色数组 var colorList [ #313695, #4575b4, #74add1, #abd9e9, #e0f3f8, #ffffbf, #fee090, #fdae61, #f46d43, #d73027, #a50026 ]; // params.dataIndex 是当前词的索引 // 根据索引在颜色数组中取色实现按顺序或按值的渐变 // 更常见的做法是根据 value 的比例取色 var index Math.floor((params.data.value / maxValue) * (colorList.length - 1)); return colorList[index]; }更进一步你可以实现按分类着色。假设你的词属于不同的类别比如技术、产品、运营你可以在数据里增加一个category字段然后在颜色函数里根据这个字段返回不同的颜色这样一眼就能看出词的归属。最后结合Echarts的其他组件打造信息面板。词云很少孤立存在。你可以利用Echarts强大的组合能力将它和饼图、柱状图、地图等放在同一个option里通过grid属性控制各自的位置。更酷的是交互联动当用户点击词云中的某个词时右侧的柱状图同步显示该词随时间的变化趋势。这需要通过Echarts的dispatchAction和on事件监听来实现。myChart.on(click, function (params) { // params.name 就是被点击的词 console.log(点击了:, params.name); // 这里可以触发另一个图表的更新 // myBarChart.setOption(...); });把这些创意元素组合起来你就能做出真正让人眼前一亮的词云可视化。它不再只是一个简单的文本频率统计图而是一个融合了数据洞察、品牌表达和交互体验的综合性信息图表。5. 实战案例打造一个交互式关键词仪表盘光说不练假把式这一节我们就把前面学到的所有东西串起来做一个有点“产品化”味道的实战项目一个交互式关键词仪表盘。这个仪表盘会有一个词云作为主视图一个柱状图显示Top10关键词的具体数值还有一个筛选区。目标是当用户点击词云中的某个词时柱状图高亮对应的柱子并在旁边展示该词的详细信息。第一步搭建页面结构。我们需要三个主要区域。div classdashboard div classfilter-area h3数据筛选/h3 button idbtn-tech技术关键词/button button idbtn-product产品关键词/button button idbtn-all全部关键词/button /div div classchart-area div idmainWordCloud stylewidth: 70%; height: 500px; float: left;/div div idtop10BarChart stylewidth: 30%; height: 500px; float: left;/div /div div classdetail-area idwordDetail styleclear: both; padding: 20px; p点击词云中的关键词查看详细信息.../p /div /div第二步准备模拟数据。为了更真实我们模拟一组带分类的数据。var allKeywords [ { name: Python, value: 156, category: tech }, { name: 机器学习, value: 143, category: tech }, { name: 用户体验, value: 128, category: product }, { name: React, value: 118, category: tech }, { name: 数据分析, value: 105, category: tech }, { name: 敏捷开发, value: 98, category: product }, { name: Vue.js, value: 87, category: tech }, { name: 市场调研, value: 85, category: product }, { name: Docker, value: 76, category: tech }, { name: 原型设计, value: 72, category: product }, // ... 可以添加更多 ];第三步初始化词云和柱状图。词云的配置我们用前面学过的创意方法比如用一个科技感的蓝紫色渐变形状用圆形。柱状图则简单展示allKeywords里value最高的10个词。// 初始化词云 var wordCloudChart echarts.init(document.getElementById(mainWordCloud)); // 初始化柱状图 var barChart echarts.init(document.getElementById(top10BarChart)); function renderCharts(keywordData) { // 1. 渲染词云 var cloudOption { series: [{ type: wordCloud, shape: circle, sizeRange: [20, 80], rotationRange: [-30, 60], gridSize: 10, textStyle: { normal: { color: function () { // 蓝紫色渐变 return rgb( [ Math.round(Math.random() * 60 70), // R Math.round(Math.random() * 60 100), // G Math.round(Math.random() * 100 155) // B ].join(,) ); } } }, data: keywordData }] }; wordCloudChart.setOption(cloudOption, true); // 2. 渲染Top10柱状图 // 先排序并取前10 var top10Data [...keywordData].sort((a, b) b.value - a.value).slice(0, 10); var barOption { title: { text: Top 10 关键词 }, tooltip: {}, xAxis: { type: category, data: top10Data.map(item item.name) }, yAxis: { type: value }, series: [{ name: 出现次数, type: bar, data: top10Data.map(item item.value), itemStyle: { color: #5470c6 // 统一的柱状图颜色 } }] }; barChart.setOption(barOption, true); } // 首次渲染全部数据 renderCharts(allKeywords);第四步实现核心交互。监听词云的点击事件当点击时高亮柱状图中对应的柱子并更新详情区域。wordCloudChart.on(click, function (params) { var clickedWord params.name; // 1. 高亮柱状图对应柱子 // 先找到该词在柱状图数据中的索引 var barOption barChart.getOption(); var seriesData barOption.series[0].data; var xAxisData barOption.xAxis[0].data; var highlightIndex xAxisData.indexOf(clickedWord); // 创建一个新的颜色数组只高亮被点击的项 var newBarColors seriesData.map((_, index) index highlightIndex ? #ff0000 : #5470c6); barChart.setOption({ series: [{ itemStyle: { color: function (barParams) { return newBarColors[barParams.dataIndex]; } } }] }); // 2. 更新详情区域 var detailHtml h4关键词${clickedWord}/h4; var wordInfo allKeywords.find(item item.name clickedWord); if (wordInfo) { detailHtml p热度值${wordInfo.value}/p; detailHtml p类别${wordInfo.category tech ? 技术 : 产品}/p; // 这里可以模拟或从后端获取更多信息 detailHtml p相关文章近期有${Math.round(wordInfo.value / 10)}篇内容提及此关键词。/p; } document.getElementById(wordDetail).innerHTML detailHtml; });第五步实现筛选功能。为页面上的按钮绑定事件根据分类筛选数据并重新渲染图表。document.getElementById(btn-tech).addEventListener(click, function() { var filteredData allKeywords.filter(item item.category tech); renderCharts(filteredData); document.getElementById(wordDetail).innerHTML p已筛选技术关键词/p; }); document.getElementById(btn-product).addEventListener(click, function() { var filteredData allKeywords.filter(item item.category product); renderCharts(filteredData); document.getElementById(wordDetail).innerHTML p已筛选产品关键词/p; }); document.getElementById(btn-all).addEventListener(click, function() { renderCharts(allKeywords); document.getElementById(wordDetail).innerHTML p当前显示全部关键词/p; });至此一个功能相对完整的交互式关键词仪表盘就完成了。你可以点击筛选按钮查看不同类别的词云点击词云中的任意词右侧的柱状图和下方的详情面板都会联动响应。这个案例融合了配置、事件、交互和UI基本上覆盖了一个中小型数据可视化需求的核心环节。你可以基于这个框架接入真实的后端数据替换更复杂的形状和配色把它用到你的实际项目中去。

相关新闻

影刀RPA实战:liblib反推SD AI绘图Prompt全流程解析

影刀RPA实战:liblib反推SD AI绘图Prompt全流程解析

1. 需求分析:为什么我们需要自动化反推Prompt? 如果你和我一样,是个AI绘画的深度玩家,那你肯定遇到过这种情况:在网上看到一张惊为天人的Stable Diffusion作品,保存下来后,却怎么也复刻不出原作…

2026/5/17 11:34:27 阅读更多 →
PX4无人机实战:从零到飞,手把手搞定MAVROS配置与疑难排错

PX4无人机实战:从零到飞,手把手搞定MAVROS配置与疑难排错

1. 环境准备:你的第一台“地面站”电脑 大家好,我是老张,在无人机和机器人圈子里折腾了十几年,从早期的APM飞控一路玩到现在的PX4。今天咱们不聊那些高深的理论,就实实在在地,手把手带你从零开始&#xff0…

2026/7/4 23:19:34 阅读更多 →
2026实测10款降AI神器红黑榜!优缺点全曝光,达标率直接对标行业天花板

2026实测10款降AI神器红黑榜!优缺点全曝光,达标率直接对标行业天花板

2026实测10款降AI神器红黑榜!优缺点全曝光,达标率直接对标行业天花板 2026年,AI写稿、AI生成内容已经成了学生党、打工人和内容创作者的日常,但随之而来的「AI率过高」问题也成了新的麻烦:论文查重AI率超标、职场报告被…

2026/7/4 19:28:53 阅读更多 →

最新新闻

电商App签名逆向实战:从x-sign/x-miniwua看移动端安全防线

电商App签名逆向实战:从x-sign/x-miniwua看移动端安全防线

1. 项目概述:为什么我们要研究x-sign/x-miniwua? 如果你做过电商数据相关的爬虫或者自动化工具,那么“签名”这个词对你来说一定不陌生。它就像一道门禁,横亘在你和服务器数据之间。而某宝的 x-sign 和 x-miniwua &#xff0c…

2026/7/5 0:27:49 阅读更多 →
AI绘画提示词编写与优化全指南

AI绘画提示词编写与优化全指南

1. AI绘画提示词(Prompt)编写核心逻辑解析AI绘画的核心在于将自然语言描述转化为视觉元素,这个过程本质上是一种跨模态的信息转换。理解这个转换机制是编写优质Prompt的基础。现代AI绘画模型如Stable Diffusion、MidJourney都建立在扩散模型(Diffusion Model)架构上…

2026/7/5 0:25:48 阅读更多 →
如何在Windows家庭版上启用专业级远程桌面:RDP Wrapper Library终极指南(2024版)

如何在Windows家庭版上启用专业级远程桌面:RDP Wrapper Library终极指南(2024版)

如何在Windows家庭版上启用专业级远程桌面:RDP Wrapper Library终极指南(2024版) 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 你是否曾经因为Windows家庭版无法使用远程桌面功…

2026/7/5 0:21:46 阅读更多 →
2025年Nmap渗透测试实战指南:从基础扫描到高级规避技术

2025年Nmap渗透测试实战指南:从基础扫描到高级规避技术

1. 项目概述:为什么Nmap依然是渗透测试的基石如果你在网络安全这个行当里待过一阵子,或者哪怕只是刚入门,大概率都听过Nmap这个名字。它就像木匠手里的锤子,厨师手里的刀,是那种你明知道它“古老”,但每次开…

2026/7/5 0:17:44 阅读更多 →
WPF可视化设计工具终极指南:如何用WpfDesigner让界面开发效率提升3倍?

WPF可视化设计工具终极指南:如何用WpfDesigner让界面开发效率提升3倍?

WPF可视化设计工具终极指南:如何用WpfDesigner让界面开发效率提升3倍? 【免费下载链接】WpfDesigner The WPF Designer from SharpDevelop 项目地址: https://gitcode.com/gh_mirrors/wp/WpfDesigner 还在为WPF界面开发中的繁琐XAML代码而烦恼吗&…

2026/7/5 0:15:43 阅读更多 →
基于YOLOv8的猫狗品种识别系统开发实战

基于YOLOv8的猫狗品种识别系统开发实战

1. 项目概述:基于YOLOv8的猫狗品种识别系统这个项目本质上是一个计算机视觉领域的典型应用——利用YOLOv8目标检测算法实现猫狗品种的自动识别。我在实际部署中发现,相比传统图像处理方法,深度学习方案在复杂场景下的识别准确率能提升40%以上…

2026/7/5 0:13:42 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻