2026/8/22 14:54:26

covidAPI背后的秘密:Node.js + cheerio网页抓取全球Coronavirus数据全流程指南

covidAPI背后的秘密:Node.js + cheerio网页抓取全球Coronavirus数据全流程指南 covidAPI背后的秘密Node.js cheerio网页抓取全球Coronavirus数据全流程指南【免费下载链接】covidAPICoronavirus API for Current cases by country COVID-19项目地址: https://gitcode.com/gh_mirrors/co/covidAPIcovidAPI 是一个用Node.js cheerio构建的轻量级 Coronavirus 数据接口后端定时抓取全球疫情统计页面解析清洗后写入本地缓存对外提供 3 个简单 REST 接口前端则用 Ionic Angular 把数据渲染成手机风格的疫情界面。本文带你一步步拆解这套 Coronavirus 数据网页抓取 API 的完整流程适合想入门 Node.js 网页抓取的新手。 核心看点Node.js 网页抓取、cheerio 解析、定时缓存、REST 接口、Ionic 前端项目结构一览抓取 → 缓存 → 展示一条龙covidAPI 的组成非常精简两大块各司其职组成部分路径职责抓取 API 后端server.jsaxios 抓页面 cheerio 解析 quick.db 缓存依赖配置package.jsonexpress / cheerio / axios / quick.db 等容器化部署Dockerfile基于 node:10-alpine 一键启动Ionic 前端frontend/Global / Countries / About 三个移动页面构建产物www/后端直接托管的静态页面一键安装启动Node.js 环境 3 条命令跑起来克隆项目后安装依赖并启动服务git clone https://gitcode.com/gh_mirrors/co/covidAPI cd covidAPI npm install npm start服务启动后Express 会把www/目录下的前端静态页面也一并托管见 server.js一个进程同时搞定接口和界面。生产环境推荐用 Dockerfile 构建镜像基于轻量node:10-alpine启动命令为node server.js。网页抓取核心代码axios 抓页面cheerio 做解析抓取逻辑全部集中在 server.js整体流程分四步定时抓页面setInterval每 2.5 分钟150000 毫秒触发一次用axios.get拉取全球疫情统计页的 HTML调度逻辑见 server.js解析总数cheerio.load加载 HTML 后选中.maincounter-number三个计数元素去掉千分位逗号转成数字存入cases / deaths / recovered解析国家表格精确定位table#main_table_countries_today按列索引提取累计确诊、今日新增、死亡、活跃、重症、检测量等 10 个字段写入缓存两组数据分别用db.set写入 quick.db 本地数据库并打印日志方便核对。其中国家名的清洗值得借鉴有的国家名带超链接、嵌套层级不同代码用四级兜底读取确保总能取到名称见 server.js。⚡ 划重点这是一个「抓取 → 清洗 → 缓存」的标准范式换成任何统计类网页都能照搬。3 个 REST 接口即取即用的 Coronavirus 数据后端对外暴露 3 个轻量 GET 接口定义见 server.js接口说明GET /all/全球总数确诊 / 死亡 / 康复GET /countries/全部国家的完整数据GET /countries/{国家名}单个国家数据忽略大小写匹配配合cors中间件任何前端项目都可以直接跨域调用零配置。Ionic Angular 前端把数据变成手机页面前端是标准 Ionic 5 Angular 工程3 个页面分工明确Global 页tab1.page.html 用卡片展示全球确诊、死亡、康复三大总数Countries 页tab2.page.ts 订阅接口返回的国家数据并列表展示搜索框支持实时过滤About 页数据来源与作者信息。数据层是一个极简的 Angular Servicecovid.service.ts 用 HttpClient 封装了getAll()和getCountries()两个调用页面组件只管展示。Docker 一键部署最快上线方法官方提供了现成的 Dockerfile构建并运行docker build -t covidapi . docker run -p 3000:3000 covidapi镜像内自动完成依赖安装暴露 3000 端口适合部署到任意容器平台。常见问题 FAQQ数据多久更新一次接口为什么总是秒回A后端每 2.5 分钟抓取一次并缓存接口直接读 quick.db响应快、也不会频繁请求源站点。Q能改抓别的统计页面吗A可以。只需修改server.js中的 URL 与 cheerio 选择器「抓取 解析 缓存 接口」的整体架构可原样复用。Q前端如何重新构建A运行 package.json 中的build-frontend脚本内部执行 ionic build产物输出到www/目录由后端直接托管。总结covidAPI 是新手学习Node.js 网页抓取的绝佳参考项目一个不到 240 行的 server.js 演示了「axios 抓页面 → cheerio 解析 → quick.db 缓存 → Express 暴露接口」的完整链路再搭配 Ionic 前端就是完整的 Coronavirus 数据产品。克隆下来跑一遍你也能在 10 分钟内搭出自己的数据抓取 API。【免费下载链接】covidAPICoronavirus API for Current cases by country COVID-19项目地址: https://gitcode.com/gh_mirrors/co/covidAPI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考