监控工作原理

Page Deltas 按自适应时间表运行您的监控器,使用最轻量级且可行的方法抓取每个页面,并应用 LLM 过滤器,以便您只收到有意义的提醒。

一次检查的生命周期

  1. 调度。 一个中央调度程序会挑选出 next_check_at 到期的监控器,并将作业排入 Postgres 队列中。
  2. 抓取。 工作节点 (worker) 认领作业并抓取页面(使用普通 HTTP,如果不行则通过数据中心代理使用无头浏览器,再不行则使用住宅代理 — 详见下文)。
  3. 提取。 HTML 被精简为其主要的文本内容。样板内容(导航栏、页脚、广告)会被剥离。
  4. 哈希与差异对比。 系统将生成标准化的哈希值并与上一次检查进行比较。如果完全相同,运行到此结束 — 不会调用 LLM。
  5. LLM 过滤。 如果哈希值发生了变化,差异内容 (diff) 和您的描述将被发送给 LLM,由它来决定该变更是否具有意义。
  6. 提醒。 有意义的变更会被写入 monitor_changes 表中,并排队等待分发到连接至该监控器的每个渠道。

自适应调度

您无需设置检查频率。调度程序会观察页面实际发生更改的频率,并相应地调整 next_check_at — 当变更频繁发生时检查得更快,当页面处于休眠状态时检查得更慢。您的订阅计划也会影响节奏:较高级别的计划获得更高的调度优先级。这使您的资源使用量与您获得的价值保持正比。

抓取器的升级策略

每次检查都从成本最低的方案开始,只有在必要时才会升级手段:

  1. 普通 HTTP。 无 JavaScript,无浏览器。速度快且成本低。适用于大多数服务器渲染页面和 JSON 端点。
  2. 通过数据中心代理的无头浏览器。 当页面是客户端渲染,或普通的 HTTP 抓取被屏蔽时使用。我们使用 Camoufox(一款能够绕过大多数指纹识别的静默修补版 Firefox)进行渲染,并通过 Oxylabs 数据中心代理进行路由。
  3. 通过住宅代理的无头浏览器。 当数据中心代理抓取仍然被屏蔽时使用。通过 Oxylabs 的住宅 IP 路由相同的浏览器请求。

作为控制成本的措施,我们将按组织跟踪通过住宅代理路由的数据量(字节)。

LLM 过滤器

当页面文本的哈希值发生改变时,我们不会立即发出提醒。首先,我们会将差异内容和您的监控器描述发送给 LLM,并提出一个问题:根据这段描述,这个变更具有意义吗?

它能捕捉到什么

  • 竞争对手定价页面上的价格变更。
  • 路线图或变更日志上发布的新产品。
  • 您正在监控的招聘页面上的职位发布变动。

它会忽略什么

在生成哈希值之前,空格和样板内容(导航栏、页脚、广告)会被剥离,因此它们永远不会到达 LLM。此外,分类器被指示将以下情况视为无意义内容:

  • 轮播的客户评价、广告、“3 天前添加”式的相对时间戳,以及浏览量统计。
  • 没有语义变化的重新排序。
  • 构建哈希值 (Build hashes) 和会话标识符。
监控工作原理 · 文档 · Page Deltas