核心功能
clawfetch 是一个面向 OpenClaw 代理的网页抓取技能,将公共 npm CLI 工具 clawfetch 封装为标准化接口。它通过 headless Chromium 将任意网页转换为结构化 Markdown,并附加元数据头(标题、作者、站点、最终 URL、提取模式)。
技术实现
- 底层引擎:Playwright + Readability.js + Turndown,自动识别主内容区域
- 多模式适配:
- 普通文章/文档:默认浏览器模式,Readability 提取正文
- GitHub 仓库:优先走
raw.githubusercontent.com快速通道获取 README - Reddit 线程:默认转换为
.rssAtom feed 解析,支持--max-comments限制评论数,可选--no-reddit-rss强制浏览器模式
显著优点
1. 输出标准化:固定格式的 YAML 元数据头 + Markdown 正文,便于下游索引
2. 平台智能感知:对 GitHub 和 Reddit 有特殊优化,避免无头浏览器开销
3. 依赖透明:仅安装公开 npm 包 clawfetch@0.1.3,无隐藏 git 克隆或源码嵌入
4. 评论可控:Reddit 场景下可通过参数限制评论数量,避免数据爆炸
潜在局限
- Node 依赖:要求运行时环境预装
node和npm,容器需网络访问 npm registry - Playwright 开销:首次启动需下载 Chromium,冷启动延迟较高
- 动态内容限制:重度 JavaScript 渲染的 SPA 可能需要等待策略,当前版本未暴露相关配置
- RSS 依赖风险:Reddit 模式依赖平台 RSS 服务可用性,若 RSS 下线需回退浏览器模式
适合人群
- 需要批量将 Web 内容注入知识库的 RAG/Agent 开发者
- 希望自动化抓取 GitHub 文档或技术博客的运维工具链
- 需结构化存储 Reddit 讨论用于分析的研究场景
常规风险
- 网络暴露:运行时会向目标站点发起 HTTP 请求,需遵守 robots.txt 和速率限制
- npm 供应链:依赖
clawfetch包及其传递依赖(Playwright、Readability 等),需信任 npm 生态 - 内容版权:抓取内容可能受版权保护,代理层需自行实现合规检查