核心用法
clawfetch 是一个基于 Node.js 的网页转 Markdown 抓取工具,作为 OpenClaw 的技能封装层运行。它通过调用公开的 npm 包 clawfetch,将单个网页转换为规范化 Markdown 格式,并附带元数据头信息。
安装流程
技能采用显式两步安装机制:
1. 通过 openclaw skills install clawfetch 获取技能包装文件
2. 手动运行 bootstrap_deps.sh 在技能目录内本地安装 npm 依赖
这种设计确保了依赖安装的透明度和可审计性。
主要功能模式
- 通用文章抓取:启动 Playwright 无头 Chromium,使用 Mozilla Readability + Turndown 提取正文
- GitHub 快速路径:直接请求
raw.githubusercontent.com获取 README,避免浏览器开销 - Reddit 线程处理:默认转换为 RSS/Atom 格式抓取,支持
--max-comments限制评论数量,可选--no-reddit-rss强制浏览器模式
输出格式包含结构化元数据头(标题、作者、站点、最终 URL、提取策略等),便于下游索引处理。
显著优点
- 架构透明:不内嵌源码,明确声明为 npm 包的薄封装层,所有依赖来源可追溯
- 多场景优化:针对技术文档(GitHub)、社交内容(Reddit)、通用网页分别优化提取策略
- 本地化安装:npm 依赖安装在技能目录内,不污染全局环境
- 元数据丰富:自动附加提取策略标识,便于调试和质量评估
- 资源可控:Reddit 评论数量可限制,避免超大文档
潜在局限
- 手动引导步骤:bootstrap 不会自动执行,需要用户/代理显式调用
- Node 环境依赖:要求容器预装 node/npm,网络访问 npm registry
- Playwright 开销:通用模式需下载 Chromium,首次运行可能有延迟
- RSS 依赖风险:Reddit 模式依赖平台 RSS 可用性,策略变更可能失效
- 单页限制:设计为单 URL 处理,无站点爬取能力
适合人群
- 需要构建知识库的 AI 代理开发者
- 处理技术文档、社交媒体内容的数据工程师
- 追求依赖透明、可审计安装流程的安全敏感用户
常规风险
| 类别 | 说明 |
|------|------|
| 网络请求 | 访问目标网站及 npm registry,存在网络层可追溯性 |
| 浏览器指纹 | Playwright 模式产生浏览器流量,可能被反爬虫机制识别 |
| 内容合规 | 抓取内容受目标站点 ToS 约束,需遵守 robots.txt 及版权规定 |
| 供应链 | 依赖 npm 包及 Playwright/Chromium 下载,存在常规供应链风险 |
整体而言,clawfetch 是一个设计审慎、边界清晰的网页抓取工具,适合作为内容摄入管道的标准化组件。