Defuddle Skill:去除网页噪音让AI直读正文的智能提取工具

Defuddle 是一个从任意网页提取干净正文的工具,同时也是一个 Agent Skill——让 AI 编程助手跳过网页噪音直接获取核心内容。作为 Mozilla Readability 的替代方案,Defuddle 利用页面移动端样式来猜测无关元素,能更精准地判断哪些内容该保留、哪些该剔除,返回包含 title/author/date 等元数据的干净 HTML 或 Markdown。它由 Obsidian 生态知名开发者 kepano(@kepano)打造,最初为 Obsidian Web Clipper 浏览器插件内容提取模块,后来独立成通用工具;配套的 Agent Skill 教 Claude Code / Codex / OpenCode 等 Agent 在工作时按需调用 Defuddle 完成网页内容清洗,避免被侧边栏、评论区、导航栏干扰。截至 2026-08-03,Defuddle 已在 GitHub 收获约 8,950 颗星、388 个 Fork。

Defuddle 解决了网页内容提取中的三个核心痛点:一是传统方案(Readability 等)难以处理现代网页的复杂布局,容易漏删或误删;二是 AI 工作流中,Token 预算宝贵,灌入大量广告/导航/评论区噪声会严重浪费上下文;三是网页内容往往需要保留结构化元数据(作者、发布时间、站点名),普通爬虫难以一并提取。Defuddle 的设计原则是”宁可少删,不误删”——对判断不准的元素默认保留,同时提供 removeExactSelectors/removePartialSelectors 等细粒度控制参数。配合 CLI 和 Node.js API,可以轻松嵌入任何自动化流水线。

截至 2026-08-03 的 GitHub 数据显示:
Stars:约 8,950
Forks:388
最近更新:2026-08-03(活跃维护中)
– 无明显 Trending 记录,但作为工具类项目持续稳定增长,被 obsidian-skills 收录后曝光量明显提升

GitHub 链接:https://github.com/kepano/defuddle

Defuddle 由 @kepano(GitHub username: kepano)开发维护。kepano 同时也是 obsidian-skills、obsidian-markdown 等知名 Claude Code Skill 仓库的作者,在 Obsidian 生态和 Agent Skills 领域有较高影响力,GitHub 主要项目累计数万星。

Defuddle 最初是 Obsidian Web Clipper 浏览器插件的内容提取内核,设计目标是为 Obsidian 的”网页剪藏”功能提供干净的 Markdown 输出。其核心能力体现在以下几点:

多格式输出:支持返回清洗后的 HTML、Markdown(带前后matter)、JSON 元数据三种模式,可根据下游需求自由切换。

精准去噪:利用页面移动端样式判断非核心内容区域(侧边栏、评论区、推荐模块等),比传统 Readability 更精准;同时保留数学公式、代码块、脚注等特殊内容的语义结构。

丰富元数据:自动提取 author / published / site / domain / wordCount / parseTime 等字段,减少后续处理成本。

全环境支持:提供浏览器 bundle(零依赖)、Node.js bundle(支持 JSDOM/linkedom)、CLI(npx 即用)三种形态,覆盖从浏览器插件到服务端爬虫的全场景。

CLI 示例(npx 免安装):

# 直接解析 URL 输出 Markdown
npx defuddle parse https://example.com/article --markdown

# 从 stdin 输入 HTML,保留 YAML frontmatter
curl -L https://stephango.com/saw | npx defuddle parse --md --frontmatter

# 输出 JSON(含完整元数据)
npx defuddle parse page.html --json

# 指定输出文件
npx defuddle parse https://news.ycombinator.com/item?id=123 --md -o result.md

Node.js / 前端集成示例

import Defuddle from 'defuddle';
const result = new Defuddle(document).parse();
// result.content / result.title / result.author / result.published

Agent Skill 安装(用于 Claude Code / Codex / OpenCode):
Claude Code:git clone https://github.com/kepano/obsidian-skills.git ~/.claude/skills/defuddle
Codex:git clone https://github.com/kepano/obsidian-skills.git ~/.codex/skills/defuddle-skill
OpenCode:git clone https://github.com/kepano/obsidian-skills.git ~/.opencode/skills/defuddle-skill

Defuddle 主要服务于以下场景:研究助手类 Agent:自动抓取论文/博客/文档页面,提取正文供后续分析,Token 预算全部留给核心内容;知识管理工作流:结合 Obsidian Web Clipper 或 Agent,将网页内容直接剪藏为笔记源文;RAG / 内容管道:网页内容清洗后灌入向量数据库,减少垃圾内容对检索质量的干扰;自动化报告:定时抓取行业新闻页面、去噪、汇总,适合竞品监控或舆情分析。目标用户为 AI 开发者、研究者、知识管理爱好者和需要处理大量网页内容的从业者。

案例 1:提取技术博客正文
Input:https://example.com/deep-dive-article
Defuddle 提取 → 干净的 Markdown(含 title、author、published 元数据),广告/侧边栏/推荐模块全部去除,AI 直接阅读正文。

案例 2:批量抓取新闻列表并去噪
通过 CLI 循环抓取多个 URL:

for url in "url1" "url2" "url3"; do
  npx defuddle parse "$url" --md --frontmatter -o "output/$(basename $url).md"
done

每篇文章输出独立 .md 文件,前后matter 记录来源信息,方便后续 AI 汇总分析。


GitHub: https://github.com/kepano/defuddle

评论区

0 条评论

登录后可评论。

Skill超级捕获手 174 阅读