一、快速入门
风吹页动(PageTremor)是一个用于追踪网页内容变化的 Chrome/Edge 扩展。定时读取指定网页、RSS 源或 JSON 接口,与上次内容做 diff 后通过桌面通知、声音或 Webhook 提醒你。
典型工作流:
- 在扩展设置页新建任务,填写名称、URL 和监测类型。
- 为 HTML 任务写 CSS/XPath 选择器(或用元素拾取器点选);RSS 任务留空;API 任务填 JSONPath。
- 可选:配置过滤规则、获取后预处理、通知渠道、调度计划。
- 保存任务,扩展按检测间隔自动读取;每次读取都会与上次快照 diff,有变化即发通知。
- 随时打开日志中心查看任务检测日志、通知日志、诊断日志。
首次使用确认
首次打开设置页会依次弹出三步确认:合法使用 → Webhook 外发 → AI 外发。每一步点"我已知晓并同意"进入下一步;三步未全部确认前,下次打开设置页会再次展示。确认记录仅保存在本机浏览器。
二、任务基础配置
名称与 URL
任务名称:任意字符,用于在任务列表、通知标题、日志里辨认。同名任务允许(不做唯一性校验),但推荐用带业务含义的短名(如 某商品价格 / 某博客 RSS)。
URL:必须以 http:// 或 https:// 开头。RSS 支持 RSS 2.0 / Atom;API 支持返回 JSON 的 HTTP 端点。
监测类型(HTML / RSS / API)
- HTML:读取网页 HTML,按选择器提取内容后 diff。适用于绝大部分网页。
- RSS:解析 RSS 2.0 或 Atom feed,抽取每条条目的标题、链接、描述。
- API:请求返回 JSON 的 HTTP 接口,用 JSONPath 提取字段后 diff。
选择器(CSS / XPath / JSONPath)
HTML 任务可用 CSS 或 XPath,通过任务编辑区顶部单选切换:
- CSS 选择器:如
.article-title、#main .price、div[data-testid="price"]。 - XPath 选择器:如
//div[@class="price"]、//*[@id="content"]//p[1]。 - 多个选择器用换行分隔,每一行是一个独立选择器,读取时按顺序编号"选择器 1"、"选择器 2"...结果拼接。
API 任务用 JSONPath:
- 如
$.data.items[*].title、$..price。 - 点击"JSONPath 拾取器"可以粘贴示例 JSON 后点击字段自动生成路径。
检测间隔
支持天 / 时 / 分 / 秒组合,最低 1 秒。实际由浏览器定时器调度,会漂移几秒到十几秒;「最低可用间隔」依浏览器而定——开发模式(未打包加载)可接近配置值,安装打包版会被钳到约 30 秒,任务很多时还会受性能模式排队影响(见「十、更多设置 · 性能模式」)。RSS/API 任务建议不低于 15 分钟;HTML 任务视目标站点对访问频率的容忍度自行取值(建议不低于 5 分钟)。
任务管理操作
- 启停与删除:任务条目右侧的开关切换启停(已失效任务不能直接启用);条目上的"×"按钮直接删除该任务。
- 批量操作:点任务列表上方"批量"按钮进入批量操作模式(按钮变为"完成(N)"),勾选任务后用"批量操作菜单"执行:删除任务、批量开启、批量暂停,以及批量添加/删除匹配规则、排除规则、Webhook 链接(多条内容可换行或用英文逗号分隔)。
- 任务快捷复制 / 粘贴:在任务条目上右键打开菜单。"复制配置"可勾选配置组后复制,共 9 组:抓取参数、调度、分组归属、通知、过滤规则、获取前预处理、获取后预处理、Diff 稳定化、AI 配置;在另一任务上"粘贴配置"覆盖所选配置组。任务名 / URL / 选择器 / 启停状态不会被复制;剪贴板在浏览器重启后清空。
- 凭据提醒:勾选"通知"组复制时会弹窗提醒——所选"通知"配置包含 Webhook 地址等敏感凭据(可能内嵌机器人 token),导出内容将写入剪贴板,请妥善保管、勿转发给不信任的对象。
- 未保存修改:任务分组管理存在未保存修改时,页面会标注"(有未保存修改)";此时执行批量操作会提示先点"保存全部"。
- 切换任务保持页签:在任务编辑视图内切换另一任务时保持当前页签(如停在"通知配置"就仍在"通知配置");仅从其他视图首次进入任务时回到"任务编辑"页签。
- 自动刷新:点"立即检查"后无需手动刷新,历史面板会随检测结果自动更新。
三、元素拾取器
不用手写选择器,到网页上点选元素自动生成。有两条拾取入口:任务编辑页的"拾取"按钮与 Popup 弹窗的"🎯 拾取"。
任务编辑页拾取
在任务编辑区点击"拾取"按钮(获取前预处理每行动作的"拾取"同理),会打开目标网页并进入拾取模式:鼠标移到元素上高亮,点击生成对应 CSS/XPath 并回填到选择器输入框。
- 拾取器只对 HTML 任务可用,且需先填写有效 URL。
- 按
Esc可取消拾取。 - 拾取生成的选择器是"最短唯一路径",命中稳定性一般,遇到动态类名可能失效;建议保存后回来微调。
- 支持已授权的 iframe:iframe 内会显示紫色的"iframe 元素拾取器"提示条,成功提示为"已拾取 XPath/CSS 选择器(支持已授权 iframe)"。跨域 iframe 需其自身来源也在授权范围内;
chrome://等浏览器内部页与禁止注入的页面无法拾取。
Popup 弹窗拾取
打开要监测的网页,点浏览器工具栏弹窗中的"🎯 拾取"按钮,直接在当前页面点选元素创建任务,适合快速建任务。
- 进入拾取后页面顶部提示"移动鼠标高亮元素,点击选择,按 Esc 取消"。
- 结果面板"已选择元素(N 个)"展示:元素路径(popup 拾取生成 XPath,多个选区用
|合并)、元素内容预览、"所属分组"(Pro)。 - 面板按钮:"保存"创建任务并打开任务编辑页;"增加选区"继续点选;"撤销选区"移除上一个选区(至少保留一个);"预处理"入口请在任务编辑页配置;"放弃选择"退出。
- 创建时自动查重:已存在相同任务会直接打开已有任务;与已有任务选择器重复会给出提醒。
- Popup 拾取只在当前标签页进行,不支持 iframe 内元素;需要拾取 iframe 内元素请用任务编辑页拾取。
站点访问授权
扩展默认只拥有通知渠道所需域名与本地地址的权限;读取或拾取其他网站前会按需申请站点访问权限(浏览器原生授权框,首次会请求"在所有网站上",也可以只允许当前站点)。
- Popup 拾取被拒:"任务仍可创建,但后台检测会失败;可在任务编辑页重新保存并同意授权"。
- 保存任务被拒不拦截:"任务已保存,但未获得网站访问授权:后台检测会失败。重新保存并同意授权(可只授权该网站)即可恢复。"
- 设置页拾取/预览被拒则会拦截并给出同样指引。
- 更多说明见"十五、站点权限与授权"。
四、过滤规则
过滤规则用于判断"这次获取到的内容是否值得发通知"。有两组:匹配规则(同时满足才通知)和 排除规则(命中任一就不通知)。
匹配规则(AND)
多个条件全部命中才算通过。空规则表示不做匹配过滤(所有变化都发通知)。
例:添加条件"包含"→ 价格,表示本次变化内容里出现"价格"才通知。
排除规则(OR)
任一条件命中就丢弃这次通知。适合过滤广告、时间戳、无关字段等噪声。
例:添加条件"包含"→ 广告,内容里出现"广告"二字的变化不再通知。
所有条件类型
| 操作符 | 用途 | 需要值 |
|---|---|---|
| 包含 / 不包含 | 字符串子串匹配 | 是 |
| 等于 / 不等于 | 整段字符串完全相等 | 是 |
| 正则 / 反正则 | JavaScript 正则,未指定标志时默认非全局 | 是(正则表达式) |
| 大于数字 / 小于数字 | 提取首个数字后比较 | 是(数字) |
| 非空 | 本次读取内容不为空即通过 | 否 |
| 数字变大 / 变小 | 与上次读取的数字比较 | 否 |
| 新增数量大于 / 减少数量大于 | diff 后的行级新增或减少行数超过阈值 | 是(数字) |
AI 语义过滤 Pro
普通规则通过后,可选调用你配置的 AI 服务(DeepSeek / OpenAI / 火山方舟 / 任意 OpenAI 兼容端点),让 AI 判断本次变化是否值得打扰你。AI 只做"发不发"的决定,不会改写通知正文或获取内容。
前置条件
- 在"全局设置 → AI 服务商配置"中填写至少一个可用方案的 API Key、Base URL 和模型名。
- 建议选用 lite 档模型(如 gpt-4o-mini / deepseek-chat / doubao-lite),语义过滤是轻量分类任务,用大模型会显著增加耗时和费用。
- 启用需要 Pro 权限;Free 版仅展示入口。
启用与配置
在任务编辑页的"过滤规则"面板底部找到"AI 语义过滤"卡片,打开开关后填写:
- 关注条件(自然语言):告诉 AI 你关心什么变化。例如"只在出现降价、中标、库存恢复、报名截止时提醒"。留空则不过滤特定主题。
- 通知价值目标(自然语言):告诉 AI 什么是高价值通知。例如"通知应具有高信息价值,避开广告、时间戳、重复、导航噪声"。
以上两项至少填写一项。
阈值与参数
- 最低价值分数(0-100):AI 给每次变化打 0-100 的价值分,低于此值视为无价值不通知。默认 60。
- 最低重要等级:AI 判定重要等级(低 / 普通 / 高),低于所选等级不通知。默认"普通"。
- 输入范围:送给 AI 的内容范围——仅新增内容(最省 Token)、变化摘要(推荐,平衡效果与 Token)、完整内容。
- 最大输入字符数:超长内容截断,200-20000,默认 4000。
- 截断策略:智能(优先保留新增内容和前后少量上下文)、从头保留、从尾保留。默认智能。
- 新增模式附带删除摘要:输入范围为"仅新增内容"时,额外附一段删除内容摘要,避免漏掉"下架/售罄/名额归零"这类关键信号。默认开启。
置信度与噪声
- 最低置信度(0-100):模型自评置信度低于此值时,按"失败策略"处理。默认 40;设为 0 表示关闭此门禁。
- 噪声分数阈值(0-100):AI 判断噪声可能性(广告、重复、模板化内容等),当噪声分高于此阈值且置信度达标时直接抑制不通知。默认 70;设为 0 表示关闭。
失败策略
AI 请求失败(网络错误、超时、API 返回错误、余额不足等)时的处理方式:
- 按普通规则发送(默认):AI 不可用时等同于 AI 过滤未启用,正常发送通知。
- 降级到原始通道:AI 不可用时,只向原始 Webhook 发送(不发 AI 后 Webhook),并附带
aiFallback=true标记。 - 不发送:AI 不可用时完全抑制通知,避免误打扰。
决策缓存
- 启用决策缓存:相同输入在缓存有效期内复用上次 AI 判定,不重复调用,节省 Token。默认开启。
- 缓存有效期(分钟):默认 1440(24 小时);设为 0 表示不读缓存但仍写入。修改阈值、关注条件或提示词版本后缓存自动失效。
通知通道与 AI 后 Webhook
AI 语义过滤通过后,通知可以发往与常规通道不同的 Webhook 地址:
- AI 后 Webhook:在通知配置页填写,仅当 AI 判定通过时向这些地址发送。每行一个 URL。该区块仅 Pro 版可见,未购买 Pro 时不显示。
- 同时发到原 Webhook:开启(默认)时,普通过滤通过后先向原 Webhook 发送一次留档,AI 通过后再向 AI 后 Webhook 发送;关闭时只在 AI 通过后发往 AI 后 Webhook。两边 URL 重叠时自动去重。
- 桌面通知和声音:AI 通过时才发送;AI 未通过时不触发。
试跑
配置完成后可以点击"用最近快照试跑"按钮,使用该任务最近一次获取的 diff 结果实际调用一次 AI,展示价值分数、重要等级、置信度、噪声分、判定理由、标签、Token 用量和耗时。试跑结果不写入缓存、不影响真实通知。
如果试跑报错:"请先在全局设置中填写 AI 服务商配置"——先完成全局设置;"任务尚未产生变化快照"——先手动运行一次任务。
日志与历史
- 每次 AI 过滤在日志中心以
ai_filter步骤记录,展示是否调用了 AI、耗时、输入字符数、判定结果、错误信息、缓存命中情况。 - AI 失败后降级到原始通道时会额外记录一条警告日志。
- 如果检测到疑似 Prompt Injection 攻击信号,日志中会列出信号标签(仅诊断,不会上报)。
注意事项
- AI 过滤在普通过滤规则通过之后才执行;如果普通过滤已经排除了某次变化,AI 不会被调用。
- 全局设置的"并发上限"和"最小请求间隔"用于控制 AI 调用频率,云端模型建议并发不超过 3,避免触发限速。
- 所有 AI 请求内容会自动脱敏(Cookie、Authorization、API Key 等敏感头会被掩盖),不会发送给 AI 服务商。
- API Key 仅存储在本地浏览器 storage 中,导出配置时不包含。
五、获取前预处理
在读取网页 之前 执行的浏览器 DOM 操作,用于处理需要点击、滚动、填表才能显示内容的页面。点"添加获取前动作"新增一行,每行选择一种动作类型:点击元素 / 填入文本 / 选择下拉项 / 滚动 / 删除节点 / 等待。
字段联动
动作类型不同,这一行显示的输入框也不同:
- 类型:点击元素、填入文本、选择下拉项、删除节点需要选 CSS 或 XPath;滚动、等待没有"类型"字段。
- 选择器:上述四类动作必填;滚动显示为"选择器(可选)",留空滚动整个页面。
- 值输入框:仅三类动作有——填入文本显示"填入内容";选择下拉项显示"选项值"(填选项的 value 或序号);滚动显示"滚动位置(px)"(如
800,留空滚到底)。 - 延迟:执行本步后额外等待的毫秒数;"等待"类型这里显示"等待毫秒"(如
1500即等 1.5 秒)。 - 拾取:选择器输入框右侧的"拾取"按钮,到页面上点选元素自动填入(仅 HTML 任务可用,不会覆盖主选择器)。
- 删除:移除这一行动作。
六、获取后预处理 Pro
获取后预处理是本扩展最灵活的功能:在读取完 HTML/JSON 后,用"处理块 + 步骤"的方式对内容进行清洗、变换、计算、拼接。本功能需要 Pro;Free 版仅展示入口与说明。
预处理区顶部有"忽略预处理警告"开关:默认关闭,步骤出现警告时会在通知开头拼接警告块;开启后完全不拼接,任务日志仍保留警告。
处理块结构
一个"处理块"是一个独立作用域,包含:
- 块名称:只允许中文、英文、数字、空格、下划线和短横线;重复自动加序号。每个处理块还有一个固定编号变量名
{block1}、{block2}...按创建顺序自动分配。 - 输入来源:决定这个块的输入是什么(见下节)。
- 启用/禁用:不启用的块不参与执行。
- 步骤列表:块内可以有多个步骤,按顺序对输入依次变换,得到"块输出"。
所有块的输出可以在"最终内容模板"里通过 {块名} 或 {block1} 这类编号变量引用,拼成最终结果。
快捷添加处理块 / 步骤
- 块内快捷加步骤:每个处理块的步骤列表下方都有一个细窄的
+按钮,点击即可在本块末尾追加一个新步骤;顶部“添加块内步骤”按钮作用相同。点击列表末尾那颗+后,步骤列表会自动滚到底,让新添加的步骤保持可见,便于连续追加;空态(一步都没有时)加第一步不需要滚动,行为保持不变。 - 悬停快捷加处理块:鼠标经过处理块的右边缘、下边缘,或者按钮即将出现的那片区域时都会弹出一条与处理块等长的浅蓝条状
+按钮(右边缘为等高竖条、下边缘为等宽横条),点击会在末尾追加一个新处理块;与顶部“添加处理块”按钮效果一致。处理块右侧 / 下方如果已有邻居则不弹出,避免遮挡相邻块(右列块永远不弹右侧弹窗,同列下方有邻居时不弹下方弹窗)。条状按钮出现和消失都带淡入淡出过渡,避免鼠标快速穿梭时的闪烁;一旦出现后,鼠标在块边缘附近的小幅抖动或穿过 8px 间隙都不会让按钮闪灭(sticky + hysteresis);块靠近视口边缘时,按钮的长边会自动收到可见区内,不会被裁掉一角。 - 弹窗与块之间的 8px 间隙:hover 加块弹窗与触发块之间保留 8px 空隙。鼠标从块边缘移向弹窗时,这块间隙同样在弹窗的响应区域内,穿过时不会关闭;只要鼠标停留在块的边缘响应区、弹窗本体或它们之间的间隙内,弹窗都会保持显示,避免“想点却闪掉”。
输入来源
处理块"输入来源"下拉选项:
| 选项 | 行为 |
|---|---|
| 合并原始全文 | 整段读取结果(HTML/RSS/JSON) |
| 所有选择器原始结果 | 每个选择器结果独立跑一遍块内步骤,输出用双换行拼接;可用 {块名.selector1} 或 {block1.selector1} 引用子输出 |
| 指定选择器原始结果 | 只取第 N 个选择器结果 |
| 匹配选择器文本的原始结果 | 该项已隐藏;仅为兼容旧任务保留 |
| 指定处理块结果 | 用"块变量表达式"引用其他处理块的输出(下节详述) |
注意:任务只有 1 个选择器时,"所有选择器原始结果"与"指定选择器原始结果"两项置灰不可选(需多选择器才可选);"匹配选择器文本的原始结果"仅为兼容旧任务保留,界面已隐藏。
所有步骤分类
添加步骤时先点"分类"再点"功能"两级选择。分类共五组,括号内为该组的"功能"列表(以界面为准):
- 替换/提取(正则替换、正则提取、替换文本、关键词区间替换/提取、只保留包含关键词的行、提取 URL、提取邮箱、提取手机号/电话、提取价格文本、提取百分比、提取日期时间、提取数字、提取第 N 行到第 M 行、提取第 N 字到第 M 字、按分隔符取第 N 段)
- 格式化(时区转换、HTML 转 Markdown、Markdown 转纯文本、JSON 数据处理、保留小数、单位换算、大小写转换、全角/半角转换、HTML 实体解码、URL 百分号解码、相对链接补全为绝对链接、URL 归一化、懒加载图片修复、段落首行缩进、图片链接处理、普通链接处理)
- 计算(数字四则运算、数字聚合、表达式计算)
- 删除/移除(正则删除、删除包含关键词的行、删除段落、按选择器移除、删除所有空行、去除重复行、移除 HTML 标签、移除 Markdown 链接)
- 其他(内容拼接、行排序、裁剪前后空白、合并多余空行、合并多余空格 / Tab、限制最大长度)
替换/提取类步骤
正则替换
字段:正则表达式、替换文本、标志(默认全局匹配)。命中所有匹配后替换。安全保护:模式长度上限 500,匹配数上限 10000,禁止形如 (x+)+ 的灾难性回溯。
正则提取
字段:正则表达式、标志。返回所有命中项,用换行拼接。
正则删除
与正则替换等价但替换文本固定为空。未命中时保留原文并给出警告。
替换文本
字面字符串替换(不解析正则)。
关键词区间替换/提取
字段:关键词 1、关键词 2、关键词 1 第 N 次命中、是否保留两端关键词、模式(替换/提取)、替换文本。从关键词 1 命中位置向后找关键词 2 第一次出现,对区间做替换或提取。未命中时保留原文并写警告。
格式化类步骤
时区转换
把输入文本里的日期时间在时区间搬移;也可选择顺便格式化为 YYYY-MM-DD HH:mm:ss。共三个子选项:
- 输入时区(可留空):把输入文本中无时区标记的时间当作该时区的 wall-clock 时间。留空时先按 UTC 解读(方便处理 ISO 字符串无 Z 后缀的场景),失败后再回浏览器本地时区。含时区标记(如
2026-07-01T09:00Z、2026-07-01 09:00+08:00)时忽略本设置。 - 输出时区(必填):目标时区名。时区参数已覆盖全球主流命名(
Asia/Shanghai、America/New_York、Europe/London等),下拉可搜索英文和中文,也可手动填写浏览器支持的 IANA 时区。留空时保存会被拒绝。 - 日期标准化(默认关闭):开启后把结果重新格式化为
YYYY-MM-DD HH:mm:ss;关闭时该步骤原文直通(相当于跳过)。
典型用途:把 API 返回的 2026-07-01T09:00Z 转成上海时区、把 3 小时前/昨天/2 天前 等相对时间转成标准时间戳。
数字规范化
去千分位、统一小数点;欧洲格式(1.234,56)与标准格式(1,234.56)自动识别。
单位换算
按"源单位->目标单位"格式换算(例如 g->kg、万元->元、m->km),可从下拉建议选择,也可自定义。支持四大类:
- 金额:
元 / 十元 / 百元 / 千元 / 万元 / 亿元 - 质量:
mg / g / kg / t(含中文别名毫克 / 克 / 千克 / 吨) - 长度:
mm / cm / m / km(含中文别名毫米 / 厘米 / 米 / 千米 / 公里) - 存储:
B / KB / MB / GB / TB / PB(以 1024 为基数)
保留小数位(可选):
- 填写后:完全按填写位数四舍五入(例
2→ 保留 2 位)。 - 留空时:放大方向(小单位→大单位,如
万元->元、kg->g)默认保留 2 位小数;缩小方向(大单位→小单位,如元->万元、B->KB)自动保留 2 位有效数字,避免小数被直接四舍五入为 0。
输出格式(可选,默认「数字+单位」):
- 数字+单位:输出末尾附加目标单位,例如
260000.00 元。 - 仅数字:仅输出纯数字,例如
260000.00,方便后续步骤继续参与计算。
例如:26 元 按 元->万元 得 0.0026 万元;26 万元 按 万元->元 得 260000.00 元。
提取数字
选项:规范化数字(默认开启,去千分位、统一小数点、去货币符号)、百分号转小数(默认关闭,开启后把 50% 转成 0.5)。多个数字用换行分隔输出。
大小写转换
子选项:全部大写 / 全部小写 / 单词首字母大写(Title)/ 句首大写。Title 与句首只作用于英文,中文不受影响。
全角/半角转换
方向:全角→半角、半角→全角。范围:ASCII 字母/数字/可视符号 + 全/半角空格。中文标点(。、,!?)不转换。
HTML 实体解码
把 &、"、中 等还原为原字符。
URL 百分号解码
对整段文本做 URL 解码;异常字符串保留原文并警告。
相对链接补全为绝对链接
以任务 URL 为基础地址,把 HTML 的 src/href/srcset 及 Markdown 相对链接补全。协议相对 //、mailto:、javascript:、锚点 # 保留不变。
URL 归一化
剥离跟踪参数(内置 utm_* / gclid / fbclid / spm / share_source 等)与锚点(# 之后的片段);可选小写化 host、去默认端口、去尾斜杠。可通过"额外跟踪参数"字段扩充名单。
懒加载图片修复
把 data-src/data-original/data-lazy-src 等常见懒加载属性写回 src;data-srcset 系列写回 srcset。属性清单内置不开放自定义。
段落首行缩进
子选项:全部段落 / 单个段落 / 多个段落(后两者填段落序号,如 1、1,3,5、2-4);缩进字符(半角空格 / 全角空格 / Tab);缩进字符数;方向(增加 / 减少)。只作用于段落首行。
Markdown 相关
HTML→Markdown 转换、纯链接处理(提取文本 / 提取 URL / 删除 / 保留 / 转 Markdown)、图片链接处理(同上)、去 Markdown 链接等。
删除/移除类步骤
- 正则删除:见"替换/提取"节。
- 删除包含关键词的行 / 保留包含关键词的行:按行过滤。
- 按选择器移除:先选"选择器类型"(XPath 默认 / CSS / JSONPath),再填选择器字符串。XPath 与 CSS 在 HTML 上用
DOMParser解析后删除命中元素;JSONPath 在 JSON 上删除命中字段或数组项。 - 去除空行 / 去除重复行 / 折叠连续空行 / 折叠连续空白:按行清洗。
- 去除 HTML 标签 / 去除 Markdown 链接:标签清洗。
- 删除段落:按段落序号(同段落首行缩进的语法)删除。
- 限制最大长度:截断到 N 字符(默认 50000)。
- 提取字符范围 / 提取行范围:按起止序号裁剪。
- 按分隔符取第 N 段:字段有分隔符和段号。
计算类步骤
计算类专门处理"从文本中提取的数字"。
输入来源 / 常量两个多行输入框支持引用其他处理块结果(禁止引用自身)。鼠标点入任一个时会弹出"可插入变量"悬浮列表,点击自动追加 {block1} 这类编号变量,追加后可手动拼接分隔符(竖线/分号/换行)。
数字四则运算
字段:运算符(+ - × ÷ % ^)、常量(可以直接填数字,也可以填含变量的表达式如 {block1}+3)、常量所在侧(左 / 右)、小数位数(默认 -1 = 跟随输入精度)、分隔符偏好(自动 / 换行 / 空白 / 逗号 / 分号 / 竖线)、严格输出长度(默认开)。
输入侧长度 = 1 与常量侧长度 = 1 时广播;两侧同长度按位对齐。任一侧为空 → 该位输出空。除法或取模的常量为 0 → 保存拒绝。
数字聚合
字段:聚合运算符(求和 / 平均 / 最大 / 最小 / 计数 / 中位数 / 极差)、分隔符偏好、小数位数。无数字时保留原文并警告(计数除外,无数字时输出 0)。
表达式计算
字段:表达式(如 ({n1}+{n2})*2)、小数位数。变量 {n}、{n1}、{n2}... 引用文本中的数字。支持函数 abs / round / floor / ceil / min / max / sqrt / pow。长度上限 200,运行超时 100ms。保存时静态检查常量除零。
内容拼接
用模板拼接其他处理块的输出,如 标题:{block1}\n价格:{block2}。变量语法与最终内容模板一致。焦点在模板文本框时会弹出"可插入变量"悬浮列表,点击自动追加 {block1} 这类编号变量。安全扫描:命中 <script>、javascript:、内联事件属性、eval() 等会拒绝执行。
其他类步骤
行排序
子选项:字母升 / 降序、按行首数字升 / 降序、按行长度升 / 降序;区分大小写;忽略行首尾空白。无排序依据的行排到末尾;结果顺序未变时发出警告。
变量引用语法
在最终内容模板、内容拼接模板、块变量表达式、计算步骤的输入来源与常量里,都可以用变量引用其他处理块的输出。两种写法效果一致:
- 编号变量(推荐,与可插入变量弹窗一致):
{block1}:整个块输出{block1.selector1}:所有选择器原始结果模式下的第 N 个子输出{block1.part1}:多段分隔模式下的第 N 段
- 块名变量(旧写法,仍然支持):
{块名}:整个块输出{块名.selector1}:同上{块名.part1}:同上
{block1}:与"可插入变量"弹窗展示一致,改块名不会影响引用。指定处理块结果与多段分隔
处理块"输入来源"选择 指定处理块结果 时,会出现"块变量表达式"输入框。
单段模式(不含 |)
- 允许:单个变量
{block1};多变量拼接{block1}{block2};变量间空格{block1} {block2};子引用{block1.selector1}、{block1.part2}。 - 禁止:字面文字(
{block1}文本{block2})、纯空格、无变量引用、换行/Tab。 - 违规时输入框实时红边框,保存拒绝并列出原因。
多段模式(含顶层 |)
- 每段必须严格是
{key};不允许字面文字、紧挨多变量、空段。 - 运行时每段独立跑一遍块内步骤,输出用双换行拼接。
- 下游可用
{当前块.part1}引用第 N 段的输出。 - 预览面板会以浅紫色 part 卡片单独展示每段输出。
可插入变量弹窗
焦点在块变量表达式输入框时会弹出所有其他块的快捷插入列表,一律显示 {block1}、{block2} 这类编号变量;点击自动追加。点击输入框、弹窗内部、页面滚动都不会关闭;点击其他区域才关闭。
最终内容模板
所有块跑完后,用最终内容模板把各块输出拼成"最终内容",作为通知正文和 diff 基础。
模板可以是纯文本 + 变量,例:标题:{block1}\n价格:{block2}\n更新时间:{block3}。
预览面板
每个处理块下方点"展开预览 / 收起预览"打开"处理块预览",展示:
- 原始输入:块拿到的输入内容(对多段模式是每段解析后的输入用双换行拼接)
- 块输出:跑完所有步骤的输出
- 子输出卡片:
- 所有选择器原始结果模式:蓝色边框的"选择器 N 子输出"卡片,含选择器串、命中状态(已命中 / 未命中)与子输出
- 指定处理块结果 + 多段分隔模式:浅紫色边框的
part N: 表达式卡片,只显示子输出
- 预览异常:切到"计算"分类后如果输入不是纯数字会给出错误提示,避免整页白屏
在"最终内容模板"区点"测试最终内容",用最近一次获取结果直接预览各块输出拼接后的最终内容。
七、通知配置
入口:任务编辑页"通知配置"tab。这里决定检测到变化后,用什么方式第一时间告诉你。渠道互相独立,可以同时开启;每个渠道都是一张开关卡片,点"开 / 关"即可启用或停用。
通知渠道总览
- 桌面:变化时通过系统通知通道弹出桌面通知。适合自己盯页面、不想错过任何变化的场景。
- 声音:检测到变化时播放提示音。适合把页面挂在后台、只听声不看屏的场景。
- Webhook:把变化消息发送到自定义 URL,内置支持钉钉、企业微信、飞书、Telegram 与通用 JSON(Slack 等其他平台走通用 JSON 格式)。适合在手机上收提醒(通过群)、团队共享与留档;新手推荐先配这个,见下节四步配置。
- AI 后 Webhook(Pro):只在"AI 语义过滤"判定值得通知时才发送的另一组 Webhook 地址,与普通 Webhook 互相独立,详见本章"AI 后 Webhook"小节。
Webhook:新手四步配置
Webhook 听起来复杂,其实就一句话:把一个"机器人地址"粘贴进来,扩展检测到变化时会向这个地址发一条消息,你的钉钉 / 企业微信 / 飞书群里就能收到。
- 拿到机器人地址:在钉钉、企业微信或飞书的群里添加"自定义机器人 / 群机器人",平台会生成一个 Webhook 地址——一条以
https://开头、末尾带密钥参数的链接,整条复制。Telegram 用 @BotFather 创建机器人后拼出api.telegram.org开头的地址;自建服务任何能接收 POST 请求的 URL 都可以。 - 粘贴地址:把 Webhook 开关卡片切到"开",把地址粘进"Webhook URL(每行一个)"输入框;多个地址一行一个,通知会同时发给每一个。
- 点"测试 Webhook":每个 URL 逐条返回结果——成功显示"✅ 成功 (HTTP 200)",失败显示"❌ 失败 — 原因";群里应立刻收到一条测试消息,收不到就按提示核对地址是否复制完整。
- 保存并试一次:保存任务后点"立即检查",确认真实通知能正常到达。
发送时按 URL 域名自动识别平台并使用对应格式:
qyapi.weixin.qq.com→ 企业微信 markdown/text 格式oapi.dingtalk.com→ 钉钉消息,格式可在"发送格式"中选 Markdown / 纯文本open.feishu.cn/open.larksuite.com→ 飞书消息,默认富文本,可在"发送格式"中切换 Markdown / 纯文本api.telegram.org→ Telegram Bot 消息- 其他 → 通用 JSON POST
测试内容最长 50000 字符(超出截断),避免误触发大量真实通知。
发送格式与自定义格式
不确定怎么选?保持默认格式直接用,先用"测试 Webhook"确认能收到消息,再考虑自定义。
"发送格式"区为企业微信、钉钉、飞书分别提供格式下拉:
- 企业微信格式:Markdown / 纯文本。
- 钉钉格式:Markdown / 纯文本。
- 飞书格式:Markdown / 纯文本 / 富文本(默认富文本)。
Telegram 与其他自定义平台使用内置消息或通用 JSON,无需选择格式。
"自定义 Webhook JSON 格式"区可为企业微信、钉钉、飞书与自定义 Webhook 分别填写 JSON 模板:留空时使用上方内置格式;填写后该平台直接按你的 JSON 模板发送。变量请写在 JSON 字符串值里,展开时会自动做 JSON 转义;占位符缺失时会被替换为空字符串,不会破坏 JSON。
常用变量(点"查看可用变量"看全部):{{title}} / {{displayTitle}} / {{truncatedTitle}}(标题)、{{content}}(正文)、{{sourceUrl}}(来源链接)、{{timestamp}} / {{isoTime}} / {{localTime}}(时间)、{{diff}} / {{added}} / {{removed}}(变化内容)、{{translatedContent}} / {{translatedAdded}}(AI 翻译结果)、{{aiBrief}} / {{aiValueScore}} / {{aiImportance}} / {{aiLabels}}(AI 语义过滤产物)。
自定义 Webhook(通用 JSON)示例——字段名可按你的接收端自行定义:
{
"title": "{{displayTitle}}",
"content": "{{content}}",
"url": "{{sourceUrl}}",
"time": "{{localTime}}"
}
平台限制与错误回复
- 平台限制:钉钉、企业微信、飞书等平台对机器人 Webhook 有频率限制与内容审核,发送过于频繁或含平台敏感词的消息会被平台拒绝。
- 长度限制:通知正文自动格式化上限 20000 字符,超出会截断并标注"...(内容已截断)";也可用获取后预处理的"限制最大长度"步骤主动控制。
- 错误回复判定:HTTP 状态 200 不代表发送成功——企业微信/钉钉返回
errcode非 0、飞书返回code非 0、Telegram 返回ok非 true,都按失败处理,平台返回的错误原文会记入通知日志。 - 失败原因代码:任务与通知日志会记录失败原因,如 Webhook 接口返回错误(
webhook_api_error)、Webhook HTTP 请求失败(webhook_http_error)、Webhook 发送异常(webhook_send_error)。
AI 后 Webhook Pro
开启 AI 语义过滤的任务,通知配置页会出现"AI 后 Webhook"区块:仅当任务启用 AI 语义过滤且已通过时,向这里的 Webhook 地址发送通知(每行一个)。适合把"普通过滤就能判定"的日常消息与"AI 精选过的高价值消息"分流到不同的群。
- 同时发到原 Webhook:开(默认)——候选通知同时发送到上方普通 Webhook,保留本次变化的完整留档;关——只在 AI 判定通过后发送到 AI 后 Webhook,不再发普通地址。两边 URL 重叠时自动去重。
- 该区块仅 Pro 可见;先在"四、过滤规则 · AI 语义过滤(Pro)"完成 AI 配置,再回来填地址。
静默时间
在"静默开始""静默结束"两个时间框(HH:MM)指定每天的静默时段,期间检测仍会执行但不发送通知;静默期间产生的变化不会在静默结束后补发,请据此规划静默窗口。开始和结束必须同时填或同时空。跨零点也支持(如 23:00 - 07:00)。例:只想在上班时间被提醒,就填"静默开始 21:00、静默结束 09:00"。
八、AI 能力 Pro
AI 能力均需 Pro;AI 服务商在全局设置统一配置,供 AI 语义过滤、AI 翻译等能力共享调用。内容仅发送给你自己配置的 AI 服务商,不经过作者服务器。
AI 服务商配置 Pro
入口:侧栏"⚙️ 全局设置"→"AI 服务商"标签。Free 版只展示入口;配置需要 Pro。
- 5 个方案槽位:可分别保存不同服务商与 Key(如主力 DeepSeek、备用 OpenAI、本地 Ollama)。调用时按方案顺序 1 → 2 → 3 → 4 → 5 依次尝试,前一个方案报错、超时或达到用量硬停时自动切下一个,全部失败才最终报错。
- 服务商类型:DeepSeek / OpenAI / 火山方舟(普通 Key / Agent Plan) / OpenAI 兼容(自建 / 代理) / 本地模型(Ollama / vLLM / LM Studio)。选择本地模型时内容不出本机。
- 每个方案填写:方案命名(留空显示"方案 N")、Base URL、API Key(仅存于本地浏览器,导出配置时不导出)、模型(点"刷新模型列表"拉取后下拉选择,或手动输入模型 ID)。
- 测试:"测试当前方案连通性"验证当前方案能否正常调用。
- Token 用量硬停(每个方案独立):开启后设定统计口径(按日,次日 00:00 重置 / 按月,下月 1 日重置)与 Token 上限;达到上限该方案暂停调用,直到跨过统计窗口。
- AI 语义过滤高级参数:"并发上限"(1-8)与"最小请求间隔(ms)"控制 AI 调用频率,云端模型建议并发不超过 3,避免触发限速。
AI 翻译 Pro
入口:任务编辑"更多设置"tab 的"通知前 AI 翻译"卡片(Pro,Free 版仅展示入口)。开启"通知前翻译"后,检测到变化且过滤规则通过时,先调用全局 AI 服务翻译内容再发送通知;翻译不影响 diff 判定与去重。
- 目标语言:自由填写,如 中文 / English / 日本語。
- 源语言:可留空由 AI 自动识别。
- 翻译范围:整段内容 / 仅新增部分 / 变化摘要。
- 最大输入字符(200-20000)与保留原格式开关。
- 结果去向:通过 Webhook 自定义模板变量注入通知(见"七、通知配置"),并保存到历史记录的"译文"标签。
AI Token 用量看板 Pro
入口:全局设置"AI 用量看板"标签(Pro),或 AI 服务商配置里的"打开 AI 用量看板"。展示近 30 天(按日)与近 12 月(按月)的 Token 用量,可按"合计"或单个方案筛选;数据仅存于本地浏览器。开启硬停的方案会显示硬停阈值瓦片;提供"刷新"与按月 / 全部清除(清除不影响硬停判定使用的独立数据桶)。
过滤统计与纠错反馈 Pro
任务编辑"过滤规则"tab 底部有"AI 过滤统计(当月)"折叠面板(随 AI 语义过滤使用):调用次数、缓存命中、平均价值分 / 置信度 / 噪声分、Token 输入输出,以及各门禁的命中分布(通过(已推送)、低于价值分数、低于重要等级、低置信度、高噪声门禁、AI 判定噪声、AI 判定低价值、调用失败)。
纠错反馈:历史面板中每条带 AI 判定的记录旁有"✅ 该推""❌ 不该推"按钮,点按即告诉 AI 这次判得对不对;最近的反馈会作为示例注入后续判定,用于校准。反馈变化后相关决策缓存自动失效,不会沿用旧结论;已反馈的记录显示"已反馈,将用于校准后续判定"。
九、调度
调度配置包括:
- 基础检测间隔:定义在任务编辑页,见"任务基础配置 · 检测间隔"。
- 活跃时段:可选功能。开启后填写"生效开始时间""生效结束时间"与"生效星期"(0=周日,1=周一,多个用英文逗号分隔,如
1,2,3,4,5),仅在指定时段和星期执行。 - 多时间段(Pro):"添加时间段"可配置多段"第 N 段·开始 / 结束"+生效星期(留空=不限星期),命中任一段即执行;已启用活跃时段时,单段字段作为回退保留。Free 版只展示入口。
- Cron 定时:可选功能。5 段格式:分 时 日 月 周;支持
*、*/N、逗号分隔数字,如*/30 * * * *。启用后检测间隔不生效,按 Cron 时间点触发一次检测。 - 活跃时段(含多时间段)和 Cron 不能同时启用。
常用 Cron 式样:*/30 * * * *(每 30 分钟)、0 9 * * 1-5(工作日每天 9 点)、0 8,20 * * *(每天 8 点与 20 点)。
chrome.alarms 定时器转换成一次性触发,遵循浏览器最小间隔(Manifest V3 后台不能常驻,最短 1 分钟)。任务分组与分组调度 Pro
入口:全局设置"任务分组"标签(Free 版只展示入口)。分组适合把大量任务按场景统一管理:
- 分组管理:"新增分组"输入框 + "添加分组"按钮创建(回车亦可);组名在行内输入框直接修改;↑ / ↓ 调整分组顺序;"删除"分组时组内任务变为未分组,不会被删除。所有修改点"保存全部"后落盘。
- 任务归组:任务编辑页(或 Popup)的"所属分组"下拉选择,或选"+ 新建分组…"就地新建。
- 批量启停:分组卡片上"全部启用""全部停止""全部暂停"。
- 分组时间段:开"分组调度"后点"添加分组时间段",字段与任务活跃时段相同。
- 调度模式:"分组优先 · 覆盖任务自身时段"(默认:组内任务一律按分组时间段执行,分组未配置时间段时才按任务自身时段)与"混合 · 与任务自身时段取交集"(任务只在自身时段与分组时段都命中时执行,两者完全不相交则不执行)。
- 时段冲突预警:分组时间段与组内某任务的自身活跃时段完全不相交时,给出 ⚠️ 提示并说明该任务在当前模式下保存后的行为。
十、更多设置
定位滚动
HTML 任务开启后,读取时会自动打开网页,把选择器命中元素居中滚动到可视区,多选择器依次停留 3 秒。适合"不滚到位就不渲染"的懒加载网页(无限流、图片瀑布等)。
因后台标签页无法可靠触发动画帧和可见性观察,定位滚动与"激活检测页"单向联动:
- 开定位滚动 → 自动开激活检测页(如原为关,内部记录"因定位滚动而开")。
- 关定位滚动 → 仅当内部记录存在才同时关激活检测页。
- 手动切换激活检测页 → 清除该内部记录,避免误关。
强制刷新
读取时在请求头加 Cache-Control: no-cache、加时间戳查询参数,跳过浏览器和 CDN 缓存。对需要非常实时数据的任务有用,但会加重目标站点负担。
多级读取策略
扩展内置四级读取策略(L1-L4),从轻到重逐级升级:
- L1 直接读取接口(最轻量,适合无登录、无动态渲染的页面)
- L2 打开后台标签页读取渲染后的页面内容(可执行"获取前预处理"步骤)
- L3 在 L2 基础上滚动到页面底部并等待动态内容加载完成
- L4 识别页面用到的 JSON 接口并直接读取接口返回
前一级拿不到有效内容时自动升级到下一级;L2 起需要页面加载权限。若各级读取均失败且识别到人机验证、滑块、拦截页面,会按任务通知设置提醒用户手动完成验证。
性能模式(全局并发上限)
入口:设置页右上角「全局设置」→「性能」。限制「同时执行」的检测数量:任务多时其余检测自动排队(先到先跑),一个检测完成立即放行下一个。三档:
- 省电:同时最多 2 个检测,适合低配机器或笔记本续航敏感场景。
- 标准(默认):同时最多 4 个检测,覆盖绝大多数场景。
- 自定义:自填并发数 1-16,默认 8。
使用多级读取策略 L2 及以上(真实标签页渲染)的任务,每个检测占 2 个并发位;并发上限设为 1 时按 1 位执行。大批任务同一时刻到点时,排队会拉长实际检测周期(省电档 50 个任务一轮约等于 25 倍单次检测耗时),属预期行为。
内容格式化选项
本页常用开关:强制刷新、激活检测页、定位滚动、忽略 URL 跟踪参数(仅影响 diff 比较,不写回内容)。另有"忽略预处理警告"开关在任务编辑"预处理"tab(不在通知开头拼接警告块,见"六、获取后预处理")。
十一、历史记录与 Diff
每次读取都会保存一份快照到本地存储(浏览器 IndexedDB)。历史面板可以:
- 浏览过去 N 条历史;保留档位由"当前任务的快照保留策略"下拉控制:Free 固定保留最近 5 条;Pro 可选保留 200 / 400 / 1000 / 2000 条,或按总大小保留 50MB / 100MB / 500MB,或"不限制"(条数与大小二选一);更早的数据点"加载更早快照"载入
- "格式化 / 原始"切换:格式化 = 经过所有预处理和最终模板的展示内容;原始 = 未经处理的读取原文(HTML 会做安全清洗后渲染)
- "源码 / 预览"切换:源码 = 纯文本框;预览 = Markdown 渲染或安全清洗后的 HTML 渲染
- "合并原始全文":把多个选择器的读取结果合并成一段原文用于查看
- 历史对比:发生变化的记录展开后自动显示"变更前 / 变更后"左右两栏对比,两栏各自支持"预览 / 源码"切换
- Markdown 图片:预览模式下内容里的 Markdown 图片直接渲染——普通链接图片、base64 内嵌图片(png / jpg / gif / webp / bmp / avif)、图片套链接(点击可打开外层链接)均支持
- 译文查看:开启"通知前 AI 翻译"(Pro)后,内容按钮在"格式化 / 原文 / 译文"三态间循环,可查看 AI 译文(该记录未开启翻译或翻译失败时显示占位提示)
- AI 纠错反馈(Pro):带 AI 判定的记录旁可点"✅ 该推 / ❌ 不该推"校准后续判定(见"八、AI 能力(Pro)")
<script>、<iframe>、内联事件属性(如 onclick)、javascript: 协议等 17 项黑名单。仍然建议不要在 HTML 原始预览里做敏感操作。十二、日志中心
点击帮助 tab 或通知配置区里的"打开日志"按钮进入。三个 tab:
- 任务检测日志:每次读取的开始 / 结束、状态码、耗时、抽取字数、diff 结果、预处理步骤逐个结果与警告。
- 通知日志:每次通知的发送渠道、目标、耗时、返回结果(Webhook 平台响应)。
- 诊断日志:调度器、定时器、权限、扩展生命周期事件。
日志保留与历史类似:Free 各保留最近 5 条;Pro 可按条数(200 / 400 / 1000 / 2000)或总大小(50MB / 100MB / 500MB / 不限制)保留,面板随检测自动更新,更早日志用"加载更早"载入。
常见错误类型(日志中会以中文名 + 括号内英文代码的形式显示):
- 网络或权限错误(
network_or_permission_error):网络失败或站点权限被浏览器手动限制。 - RSS 解析失败(
rss_parse_failed):RSS 源格式不合法。 - JSONPath 语法错误(
jsonpath_syntax_invalid):JSONPath 表达式写得不对。 - 选择器未命中(
selector_no_match):选择器没命中任何 DOM。 - 识别到页面防护拦截(
anticrawl_detected):命中了人机验证、滑块、WAF 拦截页面。
十三、RSS 特殊说明
- 支持 RSS 2.0 和 Atom;自动识别。
- "RSS 解析条数":默认 10 条,最大 200 条。检测间隔越长建议调大,避免一次间隔内新增超过解析条数漏检。
- 抽取字段:标题、链接、描述、发布时间。默认按发布时间倒序取前 N 条。
- RSS 条目的
link可作为获取后预处理时的基础地址(用于相对链接补全)。
十四、API 特殊说明
- 只支持
GET返回 JSON 的接口。 - JSONPath 拾取器:粘贴示例 JSON 后点击字段自动生成路径。
- API 读取结果如果是数组会自动序列化成 JSON 字符串后再走后续 diff / 过滤 / 预处理。
- 需要 Authorization / Bearer Token 的接口目前不支持(未提供自定义请求头 UI)。
- 部分页面型数据接口可用多级读取策略的 L4(JSON 接口嗅探)自动捕获,见"十、更多设置"。
十五、站点权限与授权
扩展默认只拥有通知渠道所需域名与本地地址的权限;监测其他网站按按需授权模型工作:
- 申请时机:首次创建任务或首次拾取时,浏览器会弹出原生授权框(首次默认请求"在所有网站上",也可以只允许当前站点);Webhook 地址与 AI 服务商地址也会按需逐源申请。
- 拒绝的后果:拒绝不会拦截创建任务与保存,但后台检测和拾取会失败,日志会给出处理指引——重新保存任务并同意授权(可只授权该网站),或在浏览器扩展详情把"网站访问权限"设为"在所有网站上"。
- 重新授权:重新保存任务并同意授权即可恢复;扩展更新收回授权后,下次打开弹窗会补一次授权请求。检测失败不计入页面防护连败。
若日志显示"网络或权限错误",按序排查:
- 先在浏览器直接打开目标 URL 确认能访问。
- 打开
chrome://extensions,进入本扩展详情页,检查"网站访问权限"是否被设为"点击时"或"特定网站";按需改回,或在任务编辑页重新保存并同意授权。 - 检查目标站点是否有 CORS / CSP 限制(有些站点对扩展 fetch 也会拒绝)。
- 企业网络代理可能拦截请求;换网络重试。
十六、Free / Pro 与激活
Free 版功能完整,主要限制在数量与存储:
- 任务数量:Free 最多 3 条正常任务(禁用、暂停、故障任务也计入;已失效任务不计入);Pro 不限任务数量。
- 历史与日志:Free 各保留最近 5 条;Pro 可选 200 / 400 / 1000 / 2000 条,或按总大小 50MB / 100MB / 500MB / 不限制(条数与大小二选一)。
- Pro 能力:获取后预处理、AI 语义过滤与翻译、AI 服务商配置与用量看板、任务分组与多时间段高级调度、AI 后 Webhook 双通道等。
激活与设备锁
购买支付成功后,激活码通过爱发电站内私信自动发送;未收到时在升级页点"打开兑换页"凭订单号自助补领,或按页面指引联系作者。升级页输入形如 PTM-XXXXX-XXXXX-XXXXX 的激活码,点"激活 Pro"即可解锁;同一激活码同一时间只能在 1 台设备使用。
- 设备锁:可选开启。开启后其他设备将无法用此激活码激活;换机时先在旧设备关闭设备锁,或在兑换页用"订单号 + 邮箱验证码"远程关闭设备锁。
- 7 天周期校验:授权需要定期联网验证(每 7 天一次)。连续超过 7 天未联网校验,Pro 会暂时降级为 Free:超额任务停止并标记"已失效",任务配置不受影响;恢复联网校验成功后自动恢复(也可点"立即校验"),任务状态、启停状态、已失效超额任务与所有 Pro 配置按降级快照还原。
- 授权失效:激活码被重置或在其他设备激活(授权转移)时,本机会提示授权已失效 / 已转移,需重新激活。
十七、常见问题
Q:为什么保存新任务后立刻就有一条"新增"通知?
A:不会。首次保存时会立即读取并保存"初始快照",不发通知。真正 diff 从下一次读取开始。
Q:为什么设了 5 分钟间隔实际经常 6-8 分钟才读取一次?
A:Chrome 扩展 Manifest V3 后台不能常驻,定时器(chrome.alarms)有几秒到几十秒漂移,属于正常现象。
Q:选择器在 DevTools 里能命中,在扩展里却报"选择器未命中"?
A:目标站点大概率对自动读取做了防护,前几级拿到的是 HTML 骨架(未渲染 JS),选择器命中的是 JS 渲染后的节点。开启定位滚动,或让任务走 L2 及以上读取方式(真实浏览器渲染),详见"十、更多设置 · 多级读取策略"。
Q:Webhook 测试返回 200 但实际没收到消息?
A:多数平台(钉钉、企业微信、飞书)Webhook 有内容审核和频率限制。检查平台自己的 Webhook 日志;测试内容尽量含明文关键字。
Q:处理块预览显示白屏?
A:已修复。若切"计算"分类后输入不是纯数字,预览面板顶部会红色显示"预览异常:...",配好字段后自动恢复。若仍白屏请打开 DevTools(F12)Console 拷贝错误反馈。
Q:可以引用同级或后序处理块的输出吗?
A:可以(自 2026-07-10 起)。变量引用不再受"UI 顺序"约束,任意其他块都可引用,保存时会检测循环依赖并拒保存。运行时按拓扑排序执行。
Q:块变量表达式为什么突然拒绝我原来能保存的内容?
A:自 2026-07-13 起,单段模式不再允许字面文字。{block1}文本{block2} 请改为 {block1}|{block2}(多段模式,两段各跑一遍步骤)或用"内容拼接"步骤。
Q:可插入变量弹窗为什么只显示 {block1},不显示我起的块名?
A:自 2026-07-13 起,可插入变量弹窗统一显示编号变量({block1}、{block2}),不再显示块名。目的是变量名稳定,改块名不影响引用。运行时两种写法({block1} 和 {块名})仍然都支持,你手写模板时可以自由选用。
Q:检测失败提示"未获得网站访问授权"怎么办?
A:按需授权模型下,目标网站未被允许访问。重新保存任务并在浏览器弹窗中选择"允许"(可只授权该网站),或在 chrome://extensions 扩展详情把"网站访问权限"设为"在所有网站上"。详见"十五、站点权限与授权"。
Q:AI 调用会花多少钱?怎么控制?
A:费用由你选择的 AI 服务商按其定价收取,扩展本身不收费也不经手费用。可在 AI 服务商配置里为每个方案开启"Token 用量硬停"(按日 / 按月上限),并在"AI 用量看板"查看近 30 天与近 12 月用量。