使用定时任务和应用程序接口构建轻量级网站监控器

发布日期:2026-05-07 10:03:18   浏览量 :0
发布日期:2026-05-07 10:03:18  
0

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

你可以用不到 100 行 Node.js 代码构建一个可运行的网站变更监控器。无需数据库,无需消息队列,无需容器编排。只需定时任务、截图应用程序接口(API)、像素匹配库以及一个通知钩子。整个系统运行在每月 5 美元的虚拟专用服务器(VPS)上,或者免费的 GitHub Actions 工作流中。

以下是完整的构建过程,从第一行代码到部署。

技术栈

组件 工具 成本
调度器 系统定时任务或 node-cron 免费
截图捕获 截图 API(GET 请求) 免费层级 / 每月 9 美元
图像对比 pixelmatch 免费(npm)
通知 Slack 网络钩子或电子邮件(nodemailer) 免费
存储 本地文件系统 免费

总基础设施成本:每月 0-5 美元。截图 API 的成本取决于你监控的统一资源定位符(URL)数量以及频率。每天捕获一次二十个 URL,相当于每月 600 张截图,这完全符合大多数提供商的免费层级额度。

前置条件

mkdir website-monitor && cd website-monitor
npm init -y
npm install pngjs pixelmatch nodemailer

只有三个依赖项。pngjs 用于解析便携式网络图形(PNG)缓冲区。pixelmatch 进行像素级比较。nodemailer 发送电子邮件警报(如果你愿意,可以将其替换为 Slack 网络钩子获取请求)。

完整脚本

这是整个监控程序。实际逻辑不到 100 行。

// monitor.js
import fs from "fs/promises";
import path from "path";
import { PNG } from "pngjs";
import pixelmatch from "pixelmatch";
import nodemailer from "nodemailer";

// ─── 配置 ──────────────────────────────────────────────
const SCREENSHOT_API = "<你选择的 API>";
const API_KEY = process.env.SCREENSHOT_API_KEY;
const STORAGE = process.env.STORAGE

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部