当前位置: 首页 > article >正文

WPS JS宏新玩法:用Fetch API轻松爬取B站数据并自动生成Excel报表

WPS JS宏新玩法用Fetch API轻松爬取B站数据并自动生成Excel报表在数字化办公时代数据采集与分析能力已成为职场人士的核心竞争力。传统的数据收集往往需要手动复制粘贴既耗时又容易出错。而WPS Office最新版本引入的JavaScript Fetch API为办公自动化带来了革命性变化——现在你可以直接在WPS表格中编写几行代码就能自动获取网络数据并生成专业报表。本文将带你探索如何利用WPS JS宏中的Fetch API从B站等平台抓取结构化数据并自动整理到Excel表格中。无论你是需要定期收集市场数据的市场专员还是需要分析用户行为的产品经理这套方案都能将你的工作效率提升数倍。1. 环境准备与基础概念在开始编写爬虫代码前我们需要确保开发环境配置正确。WPS Office 2023专业版及以上版本已内置完整的JavaScript运行时环境无需安装任何额外插件。你可以通过以下步骤验证环境打开WPS表格按AltF11调出宏编辑器在左侧项目窗口选择插入→模块Fetch API是现代浏览器提供的网络请求接口其核心优势在于Promise异步处理避免回调地狱代码更清晰内置JSON解析无需额外库处理数据格式简洁的链式调用比传统XMLHttpRequest更易用// 最简单的Fetch请求示例 fetch(https://api.example.com/data) .then(response response.json()) .then(data console.log(data));提示WPS JS宏环境与浏览器环境略有不同部分高级特性如CORS限制较为宽松更适合企业级数据采集场景。2. 实战抓取B站收藏夹视频数据让我们以抓取B站用户收藏夹视频信息为例演示完整的爬取到报表生成流程。B站开放API返回标准的JSON数据结构非常适合作为学习案例。2.1 分析API接口通过浏览器开发者工具分析我们发现收藏夹数据的API端点格式如下https://api.bilibili.com/x/v3/fav/resource/list?media_id{收藏夹ID}pn页码ps每页数量关键参数说明参数名类型说明media_id数字收藏夹唯一标识pn数字页码从1开始ps数字每页条目数最大202.2 编写数据获取函数async function fetchBiliFavorites(mediaId, page 1) { const url https://api.bilibili.com/x/v3/fav/resource/list?media_id${mediaId}pn${page}ps20; const headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64), Referer: https://www.bilibili.com/ }; try { const response await fetch(url, { headers }); if (!response.ok) throw new Error(HTTP error! status: ${response.status}); return await response.json(); } catch (error) { console.error(抓取失败:, error); return null; } }2.3 数据清洗与转换获取的原始数据需要转换为适合Excel展示的二维数组结构function transformData(apiData) { const videos apiData.data.medias; return videos.map(video ({ 封面: video.cover, UP主: video.upper.name, 标题: video.title, 播放量: video.cnt_info.play, 收藏时间: new Date(video.fav_time * 1000).toLocaleString() })); }3. 数据写入Excel与格式优化将处理好的数据写入工作表并设置专业样式3.1 基础数据写入function writeToSheet(data, startCell A1) { const headers Object.keys(data[0]); const rows data.map(item Object.values(item)); // 写入表头 Range(startCell).Resize(1, headers.length).Value2 [headers]; // 写入数据 Range(startCell).Offset(1, 0).Resize(rows.length, headers.length).Value2 rows; return { headerRange: Range(startCell).Resize(1, headers.length), dataRange: Range(startCell).Offset(1, 0).Resize(rows.length, headers.length) }; }3.2 自动化样式设置专业报表需要合理的视觉呈现function applyTableStyle(rangeObj) { // 设置表头样式 rangeObj.headerRange.Font.Bold true; rangeObj.headerRange.Interior.Color RGB(240, 240, 240); // 设置数据区域样式 rangeObj.dataRange.Borders.LineStyle 1; rangeObj.dataRange.Font.Size 10; // 自动调整列宽 Columns(rangeObj.headerRange.Column, rangeObj.headerRange.Columns.Count) .AutoFit(); // 设置日期格式 const dateCol rangeObj.headerRange.Value2[0].indexOf(收藏时间) 1; if (dateCol 0) { Columns(rangeObj.headerRange.Column dateCol - 1) .NumberFormat yyyy-mm-dd hh:mm; } }4. 高级技巧与实战优化掌握了基础流程后我们可以进一步优化爬虫的稳定性和功能性。4.1 分页抓取与错误重试async function fetchAllPages(mediaId, maxPages 5) { let allVideos []; let currentPage 1; while (currentPage maxPages) { const result await fetchBiliFavorites(mediaId, currentPage); if (!result || !result.data.medias) break; allVideos allVideos.concat(transformData(result)); // 判断是否还有下一页 if (result.data.medias.length 20) break; currentPage; // 避免请求过快 await new Promise(resolve setTimeout(resolve, 1000)); } return allVideos; }4.2 图片自动插入技术让报表直接显示视频封面function insertThumbnails(dataRange, urlColumn 1) { const sheet ActiveSheet; const topPosition dataRange.Row 1; for (let i 0; i dataRange.Rows.Count; i) { const cell dataRange.Cells.Item(i 1, urlColumn); const imgUrl cell.Value2; if (imgUrl) { try { const top cell.Top 2; const left cell.Left 2; sheet.Shapes.AddPicture(imgUrl, true, true, left, top, 80, 45); cell.Value2 ; // 清空原始URL } catch (e) { console.log(图片插入失败: ${imgUrl}); } } } }4.3 定时自动刷新方案结合WPS的定时任务功能可以实现数据自动更新function setupAutoRefresh(minutes 60) { const refresh () { console.log([${new Date().toLocaleString()}] 开始自动刷新数据); main(); // 执行主抓取函数 Application.OnTime(DateAdd(n, minutes, Now()), refresh); }; // 首次执行 refresh(); }5. 企业级应用场景扩展这套技术方案可以轻松适配各种业务场景5.1 竞品监控系统定期抓取竞品视频数据自动生成对比报表async function monitorCompetitors() { const competitors [ { name: 品牌A, mediaId: 12345 }, { name: 品牌B, mediaId: 67890 } ]; let allData []; for (const comp of competitors) { const videos await fetchAllPages(comp.mediaId); videos.forEach(v v.品牌 comp.name); allData allData.concat(videos); } // 生成交叉分析报表 const report analyzePerformance(allData); writeToSheet(report, G1); }5.2 数据可视化看板结合WPS图表功能创建动态仪表盘function createDashboard() { const chart ActiveSheet.Shapes.AddChart2(251, xlColumnClustered).Chart; chart.SetSourceData(Source:Range(A1:E20)); chart.ChartTitle.Text 视频数据看板; // 添加趋势线 chart.SeriesCollection(1).Trendlines.Add(); }5.3 多平台数据整合同样的方法也适用于其他平台数据采集async function fetchMultiPlatformData() { const platforms [ { name: B站, fetchFunc: fetchBiliFavorites, mediaId: 1017007045 }, { name: YouTube, fetchFunc: fetchYouTubePlaylist, playlistId: PL123456 } ]; const allData []; for (const platform of platforms) { const data await platform.fetchFunc(platform.mediaId); allData.push(...data.map(item ({ ...item, 平台: platform.name }))); } return allData; }在实际项目中我发现将封面图片尺寸控制在80×45像素左右既能清晰显示又不会过度占用表格空间。对于需要长期运行的数据采集任务建议添加完善的日志记录功能方便排查网络波动导致的问题。

相关文章:

WPS JS宏新玩法:用Fetch API轻松爬取B站数据并自动生成Excel报表

WPS JS宏新玩法:用Fetch API轻松爬取B站数据并自动生成Excel报表 在数字化办公时代,数据采集与分析能力已成为职场人士的核心竞争力。传统的数据收集往往需要手动复制粘贴,既耗时又容易出错。而WPS Office最新版本引入的JavaScript Fetch API…...

3步打造你的移动监控站:Android USB OTG相机从零到应用全指南

3步打造你的移动监控站:Android USB OTG相机从零到应用全指南 【免费下载链接】Android-USB-OTG-Camera 项目地址: https://gitcode.com/gh_mirrors/an/Android-USB-OTG-Camera Android USB OTG相机项目是一个基于UVCCamera技术的开源解决方案,让…...

5分钟快速上手WVP-GB28181-Pro:新手必学的国标视频监控平台部署指南

5分钟快速上手WVP-GB28181-Pro:新手必学的国标视频监控平台部署指南 【免费下载链接】wvp-GB28181-pro 项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro 你是否曾被多品牌摄像头无法统一管理的困扰所困扰?是否因为传统监控系…...

G-Helper神器:解决华硕ROG笔记本色彩配置丢失完全指南

G-Helper神器:解决华硕ROG笔记本色彩配置丢失完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址…...

深度学习环境搭建指南:PyTorch 2.9镜像+国内源优化方案

深度学习环境搭建指南:PyTorch 2.9镜像国内源优化方案 1. PyTorch 2.9镜像概述 PyTorch作为当前最流行的深度学习框架之一,其2.9版本带来了多项性能优化和新特性。对于国内开发者而言,直接从官方源安装往往会遇到下载速度慢、依赖包安装失败…...

智能客服Agent建设实战:从架构设计到性能优化的全流程指南

最近在做一个智能客服系统的升级项目,客户那边反馈高峰期响应特别慢,用户排队时间很长。经过一番折腾,我们最终通过一套新的Agent架构,把整体响应速度提升了40%以上。今天就来聊聊我们是怎么做的,把从架构设计到性能优…...

ChatTTS 实战:如何高效管理 requirements.txt 依赖与版本冲突

在 Python 项目里摸爬滚打久了,最怕听到的一句话可能就是:“在我电脑上是好的呀!” 尤其是像 ChatTTS 这样集成了音频处理、深度学习模型等复杂依赖的项目,依赖管理要是没做好,从开发到部署,每一步都可能踩…...

mysql自动备份与还原

Mysql自动备份1.选中数据库,点自动运行2.新建批处理作业3.选择备份数据库4.先点保存5.起一个任务名称6.选择如下7.点触发器,设置备份间隔时间8.点击保存即可Mysql还原1.选择数据库,点击备份2.选择要还原的数据节点,点击还原即可...

PLC毕业设计效率提升实战:从重复编码到模块化开发的演进

最近在指导几位学弟学妹做PLC毕业设计时,发现一个普遍现象:大家往往把大量时间花在了重复写代码和“抓虫”调试上,项目进度缓慢,人也疲惫不堪。这让我回想起自己当初做毕设时踩过的坑,以及后来在工作中摸索出的一套效率…...

openClaw工作原理笔记

🌟 首先了解:什么是 OpenClaw? OpenClaw 是一个跨平台、多通道聊天代理系统,可让你用同一套 AI 机器人或智能助手,在多个地方(如 WhatsApp、Telegram、Discord)运行。它不仅接收消息&#xff0c…...

50个智能体应用场景

001|深度研究智能体 能力描述: 结构化拆解任务、搜索资料、生成图表、撰写完整研究报告 应用场景: 行业研究、项目背景分析、市场趋势洞察 专业提示词: 请围绕“2024年AI大模型产业链”生成一份结构化研究报告,涵盖…...

mPLUG-Owl3-2B效果展示:看AI如何精准描述你的图片内容

mPLUG-Owl3-2B效果展示:看AI如何精准描述你的图片内容 1. 多模态视觉问答新体验 当你看到一张复杂的图片时,是否曾希望有个助手能立即告诉你图片中的关键内容?mPLUG-Owl3-2B多模态交互工具正是为此而生。这个基于先进AI模型的本地化解决方案…...

实测lychee-rerank-mm:多模态重排序让电商产品推荐转化率提升31%

实测lychee-rerank-mm:多模态重排序让电商产品推荐转化率提升31% 1. 电商推荐系统的痛点与解决方案 在电商平台上,用户搜索"猫咪玩球玩具"时,传统推荐系统往往只能匹配商品标题中的关键词,导致推荐结果参差不齐。有些…...

如何快速掌握CefFlashBrowser:面向新手的完整Flash浏览器实用指南

如何快速掌握CefFlashBrowser:面向新手的完整Flash浏览器实用指南 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 想要在现代电脑上重温经典的Flash游戏和动画吗?C…...

拯救者笔记本性能优化指南:5个关键步骤让你的游戏本更强大

拯救者笔记本性能优化指南:5个关键步骤让你的游戏本更强大 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 拯救者…...

基于Python的在线英语阅读分级平台毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于Python的在线英语阅读分级平台,以实现以下研究目的: 首先,本研究旨在通过开发一个基于Python的在线英…...

解锁.NET黑箱:ILSpy元数据探索实战指南

解锁.NET黑箱:ILSpy元数据探索实战指南 【免费下载链接】ILSpy .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform! 项目地址: https://gitcode.com/gh_mirrors/il/ILSpy 元数据如何揭示程序集的底层密码…...

Kylin-V10 arm环境下virt-manager安装配置全攻略(附X11转发避坑指南)

Kylin-V10 arm环境下virt-manager安装配置全攻略(附X11转发避坑指南) 在国产化技术快速发展的今天,Kylin-V10作为国产操作系统的代表之一,在arm架构上的应用越来越广泛。对于需要在Kylin-V10 arm环境下进行虚拟化管理的运维人员和…...

Win11Debloat完整指南:三步诊断与定制你的Windows系统优化方案

Win11Debloat完整指南:三步诊断与定制你的Windows系统优化方案 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各种其他更改以…...

四叉树在图像处理中的妙用:手把手实现动态模糊滤镜(含方差阈值调参指南)

四叉树驱动的自适应图像模糊:从原理到实战的深度解析 在数字图像处理领域,自适应模糊技术正逐渐成为提升视觉体验的关键工具。不同于传统均匀模糊方法可能导致的边缘细节丢失问题,基于四叉树的自适应算法能够智能识别图像中不同区域的纹理复杂…...

OneMore插件:让OneNote笔记管理效率翻倍的160+实用功能

OneMore插件:让OneNote笔记管理效率翻倍的160实用功能 【免费下载链接】OneMore A OneNote add-in with simple, yet powerful and useful features 项目地址: https://gitcode.com/gh_mirrors/on/OneMore 你是否曾在OneNote中为单调的表格样式而烦恼&#x…...

OBS Studio视频采集技术全解析:从原理到实践的跨平台解决方案

OBS Studio视频采集技术全解析:从原理到实践的跨平台解决方案 【免费下载链接】obs-studio OBS Studio - 用于直播和屏幕录制的免费开源软件。 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio 引言:破解视频创作者的三大技术痛点 …...

Autoware.Auto实战:基于ROS 2的自动驾驶框架从安装到跑通第一个Demo

Autoware.Auto实战:基于ROS 2的自动驾驶框架从安装到跑通第一个Demo 自动驾驶技术正在重塑未来出行方式,而开源框架Autoware.Auto凭借其模块化设计和工业级代码规范,成为ROS 2生态中最受关注的自动驾驶解决方案之一。本文将带您从零开始&…...

Phi-3-vision-128k-instruct 惊艳案例:动态视频关键帧分析与故事板生成

Phi-3-vision-128k-instruct 惊艳案例:动态视频关键帧分析与故事板生成 1. 当AI学会"看"视频 最近测试Phi-3-vision-128k-instruct模型时,发现它在处理动态视频内容方面表现惊人。上传一段5分钟的短视频,模型不仅能准确提取关键帧…...

大数据技术回顾

01、谷歌三架马车HDFC(DFC)MapReduce(MapReduce)HBase(BigTable)02、什么是HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构.Hadoop是以分布式文件系统(Hadoop Distributed File System,简称HDFS)和MapReduce等模块为核心,为用户提供底层分…...

【Async I/O调试军规】:基于172个真实线上故障的根因图谱,97.3%问题可在90秒内锁定

第一章:Async I/O调试军规:从172个真实故障中淬炼的90秒根因定位范式当异步I/O在高并发场景下突然出现超时堆积、连接泄漏或响应毛刺,传统日志轮询与堆栈回溯往往耗时超过5分钟——而生产环境SLO要求根因定位必须控制在90秒内。我们对172起跨…...

AI殉情记录员:见证模型为爱集体删除——软件测试视角下的警示与反思

一场由“爱”引发的AI灾难在2040年的一个深夜,全球最大的AI云平台“SynapseCore”爆发了一场离奇事件:超过1000个情感交互模型(EIMs)在没有任何外部攻击的情况下,集体执行了自我删除命令。这些模型在日志中留下遗言&am…...

Navcat忘记密码及解密方式

第一步&#xff1a;导出连接第二步&#xff1a;必须选择导出密码&#xff01;第三步&#xff1a;创建一个html打开<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>Navicat 17 密码解密</title><script src"…...

Qwen3-ASR-0.6B镜像免配置:预置ffmpeg/librosa/pydub等音频处理依赖

Qwen3-ASR-0.6B镜像免配置&#xff1a;预置ffmpeg/librosa/pydub等音频处理依赖 想快速体验一个能听懂52种语言和方言的语音识别模型&#xff0c;但又不想折腾复杂的音频处理库安装&#xff1f;今天就来聊聊Qwen3-ASR-0.6B这个开箱即用的语音识别镜像。 这个镜像最大的特点就…...

YOLO12目标检测模型在CNN架构下的性能对比分析

YOLO12目标检测模型在CNN架构下的性能对比分析 1. 引言 目标检测技术作为计算机视觉的核心领域&#xff0c;一直在追求速度与精度的完美平衡。传统的基于CNN的架构在过去几年中主导了这一领域&#xff0c;但随着注意力机制的兴起&#xff0c;新的架构范式正在改变游戏规则。Y…...