核心用法
clawfetch 是一款面向 OpenClaw 智能体的网页转 Markdown 抓取技能,底层封装了公开的 clawfetch npm CLI 工具。该技能通过 Playwright 驱动 headless Chromium 浏览器,结合 Mozilla Readability 与 Turndown 库,将任意网页转换为标准化 Markdown 文档,并在头部附加结构化元数据(标题、作者、站点、最终 URL、提取策略等)。
典型使用场景
| 场景 | 处理方式 |
|------|---------|
| 通用文章/文档 | 默认模式:浏览器渲染 + Readability 正文提取 |
| GitHub 仓库 | 优先走 `raw.githubusercontent.com` 快速通道获取 README |
| Reddit 讨论串 | 默认转 `.rss` Atom 流解析,可选 `--no-reddit-rss` 强制浏览器模式 |
CLI 调用示例:
node node_modules/clawfetch/clawfetch.js <URL> [--max-comments N] [--no-reddit-rss]
显著优点
1. 多站点适配:内置 Reddit RSS 解析、GitHub raw 快速通道、通用 Readability 回退三档策略
2. 元数据完整:每个输出文件自带 --- METADATA --- 区块,便于后续索引与溯源
3. 隔离式安装:依赖通过显式 bootstrap_deps.sh 脚本本地安装,不污染全局 npm 状态
4. 声明式安全:明确声明不执行隐藏 git clone、不下载任意源码树,行为边界清晰
潜在缺点与局限性
- 依赖外部 npm 包:核心逻辑完全托管于
clawfetch@0.1.5包,若作者停止维护或发布恶意版本,需手动锁定版本 - Node 运行时依赖:要求容器内预装
node与npm,且需网络访问 npm registry - 两步安装流程:
openclaw skills install后仍需手动执行 bootstrap,易因遗漏导致运行时失败 - Reddit RSS 策略受限:默认 RSS 模式可能遗漏嵌套评论或实时编辑内容,完整抓取需显式切换浏览器模式
- Playwright 资源开销:每次调用启动 Chromium,高频抓取场景下内存与启动时间成本较高
适合人群
- 需要批量采集公开网页内容构建知识库的 OpenClaw 智能体开发者
- 希望将 GitHub README、技术博客、Reddit 讨论存档为 Markdown 的自动化工作流构建者
- 对网页结构有基础理解、能根据提取策略字段调试失败案例的技术用户
常规风险
| 风险类别 | 说明 |
|---------|------|
| 供应链风险 | npm 依赖树庞大,需信任 `clawfetch` 包及其下游依赖(Playwright、Turndown 等) |
| 网络行为风险 | 运行时对外发起 HTTP 请求,目标站点可能返回反爬拦截或追踪指纹 |
| 版本漂移风险 | 当前硬编码 `0.1.5` 版本,需关注上游安全通告及时升级 |
| 元数据可信度 | `Author`、`Title` 等字段依赖站点 HTML 结构,可被伪造或缺失 |