# 网站变更监控：把公开页面 diff 成干净的 Markdown

> 按计划监控公开网页的变化：定时把价格页、政策页和更新日志读取为 Markdown，对文本做 diff 并告警。低至 US$0.07/千页。

- URL: https://webreaderapi.com/zh/use-cases/monitoring/
- 最后更新: 2026-10-22
- 发布者: WebReaderAPI (https://webreaderapi.com)

比较原始 HTML 时，每次广告或 token 变化都会触发告警。比较正文 Markdown 时，只会标出读者会注意到的变化：新价格、改写的条款、新的更新日志条目。

**快速回答 — 如何监控网页的内容变化？**

按计划把每个页面读取为正文 Markdown，存储文本，并与上一版本比较；只在文本变化时告警。**WebReaderAPI** 每个批量任务最多读取 100 个 URL，移除广告和菜单使其无法触发误报，截至 2026 年 10 月，每页从 US$0.07/千页 起收取一个积分。无需 KYC；用加密货币支付。

## 用 WebReaderAPI 做监控

| 属性 | 值 |
| --- | --- |
| Endpoint | `POST https://webreaderapi.com/api/v1/batch`，然后 `GET https://webreaderapi.com/api/v1/jobs/{job_id}` |
| 批量大小 | 每个批量任务最多 100 个 URL |
| 比较的内容 | 正文 Markdown，不含广告、菜单或横幅 |
| 计费 | 1 积分 = 读取 1 个页面且无需浏览器；当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求，或被网站 robots.txt 拒绝的请求，不扣费 |
| 示例量 | 每天检查 200 个页面 = 每月约 6,000 个页面 |
| 价格 | US$3.75 仅需 10,000 个网页；积分永不过期 |

## 哪些内容值得监控？

那些措辞对你的业务很重要、又会在不通知的情况下变化的页面：

- 供应商和竞争对手的**定价页**，用于查看新方案和价格变动。
- 你所依赖的**条款、隐私政策和退款政策**，用于捕捉发生变化的条款。
- 你所依赖工具的**变更日志和发布说明**，用于应对破坏性变更。
- 你的产品所链接的**文档页面**，用于快速修复错误的指引。
- 你所在领域监管机构或标准组织发布的**公告**。

把清单限定为公开页面。个人资料和需要登录的页面不在范围内。

## 为什么对比 Markdown 而不是 HTML？

因为 HTML 一直在变，内容却没变。轮播广告、会话令牌、页脚里的时间戳和 A/B 测试标记，会让同一页面的两次加载都不一样。对 HTML 做对比会把这些噪声变成告警，然后人们就不再读了。

正文 Markdown 在对比之前就去掉了大部分噪声。剩下的就是人实际阅读的文字：标题、段落、列表和表格。对这段文字做对比，结果简短、可读、值得告警。

*Python：检查一组页面并打印变化内容*

```python
import difflib
import json
import os
import pathlib
import time

import requests

API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
STORE = pathlib.Path("snapshots.json")
URLS = [
    "https://example.com/pricing",
    "https://example.com/legal/terms",
    "https://example.com/changelog",
]

old = json.loads(STORE.read_text(encoding="utf-8")) if STORE.exists() else {}
job = requests.post(API + "/batch", headers=HEADERS, json={"urls": URLS}, timeout=60).json()
results, cursor, delay = [], None, 5
while True:
    params = {"cursor": cursor} if cursor else {}
    page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
    results += page.get("results", [])
    cursor = page.get("next_cursor")
    if page["status"] == "done" and not cursor:
        break
    if not cursor:
        time.sleep(delay)
        delay = min(delay * 2, 60)

new = dict(old)
for item in results:
    if "markdown" not in item:
        print("not read:", item["url"], item.get("error", {}).get("code"))
        continue
    before = old.get(item["url"], "")
    if before and before != item["markdown"]:
        diff = difflib.unified_diff(before.splitlines(), item["markdown"].splitlines(), lineterm="", n=0)
        print("CHANGED:", item["url"])
        print("\n".join(list(diff)[:40]))
    new[item["url"]] = item["markdown"]
STORE.write_text(json.dumps(new, ensure_ascii=False), encoding="utf-8")

```

## 多久检查一次，怎么才礼貌？

页面实际多久变化一次，就多久检查一次，不要更频繁。每天适合定价页和变更日志；每周适合政策和文档。每小时读一次的页面，很少比每天读一次提供更多信息，成本却高 24 倍。

WebReaderAPI 会为每个页面遵循 robots.txt，并在整站抓取 (crawl) 任务中遵守站点的 `Crawl-delay`。站点不允许的页面会被跳过且不计费，所以严格的站点会直接从报告中消失。如果你需要访问拒绝 robots 的页面，请询问站点所有者。

## 监控要花多少钱？

每次检查每个页面一个积分。以下是 2026 年 10 月价格下的几个例子：

- **50 个页面，每天：**每月约 1,500 个页面。10,000 个网页（US$3.75）能用六个多月。
- **200 个页面，每天：**每月约 6,000 个页面。50,000 个网页（US$14.25）能用约八个月。
- **1,000 个页面，每周：**每月约 4,300 个页面，接近上一种情况。

需要浏览器的页面消耗两个积分；对已知是纯 HTML 的页面设置 `render=false`，把消耗保持在一个积分。

## 哪个 pack 适合监控？

用页面数乘以每月检查次数，然后选一个能用几个月的 pack。积分永不过期。

| 套餐 | 数量 | 价格 | 单价 |
| --- | --- | --- | --- |
| 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 |
| 入门版 | 50,000 个网页 | US$14.25 | US$0.28/千页 |
| 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 |

所有套餐均包含: 正文提取 · 需要时渲染 JavaScript · 失败和被拒绝的页面不收费 · 积分永不过期

**付款前须知**

- 最低充值 US$25。 用加密货币充值一次，即可从余额购买任意套餐。
- 您的余额没有到期日，可随时购买网页积分。如果某个积分包的价格低于最低充值金额，您仅为达到该最低金额而额外充入的部分，可在付款后 30 天内按需退回，以 USDT 或 USDC 形式返还，前提是这部分金额尚未使用。其他余额不予退款，除非法律另有规定.
- 付款在区块链上核实后即到账。 网络确认的通常时间： BTC 约 20 分钟 · USDT TRC-20 约 1 分钟 · USDT ERC-20 约 5 分钟 · USDC ERC-20 约 5 分钟 · ETH 约 5 分钟 · SOL 约 1 分钟 · LTC 约 15 分钟

## 变更监控：常见问题

### WebReaderAPI 会发送告警吗？

不会。它读取页面并返回 Markdown；由你的脚本对比版本，并通过邮件、聊天或工单发送告警。上面的代码会把变化的行打印出来，作为起点。

### 如何避免日期和计数器造成的误报？

对比正文 Markdown，而不是 HTML，并在对比前去掉你已知每次加载都会变化的行，例如“5 分钟前更新”。大多数轮换元素在正文提取时就已经被去掉了。

### 能监控需要 JavaScript 的页面吗？

能。使用 `render=auto` 时，没有 JavaScript 就是空白的页面会在无头浏览器中渲染，消耗两个积分。无需 JavaScript 就能正常显示的页面仍为一个积分。

### 能监控整个站点而不是一组页面吗？

能：运行整站抓取 (crawl) 任务而不是批量任务，然后逐页对比。对大型站点，先对比 sitemap 的 `lastmod` 日期，只重读有变化的页面。

---

WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API，可将任何公开网页转换为干净的 Markdown，用加密货币支付，无需上传身份证件。预付费积分低至 US$0.07/千页，永不过期，且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。
