Defuddle:Obsidian 创始人打造的网页内容提取利器,9K+ Star 的 Readability 替代方案
DefuddleObsidian 创始人打造的网页内容提取利器9K Star 的 Readability 替代方案前言当你想把一篇网页文章存进笔记、喂给 AI、或归档到 RSS 阅读器时最头疼的不是下载——而是把广告、侧边栏、评论区全部剥干净只留正文。Mozilla 的 Readability.js 曾是这个领域的标杆驱动了 Firefox 的阅读模式长达十余年。但随着 Web 技术演进Readability 的更新越来越慢策略趋于保守对现代网页的提取效果逐渐力不从心。Defuddle正是为填补这个空白而生的。一、Defuddle 是什么Defuddle 是由Steph Angokepano——知识管理工具Obsidian的创始人——亲自开发的开源项目。他在开发 Obsidian Web Clipper 浏览器插件时发现现有的内容提取库要么不够准确要么输出格式不理想于是决定自己写一个。一句话概括从网页中提取正文内容和元数据输出干净的 HTML 或 Markdown。截至 2026 年 8 月GitHub 已收获9,100 StarMIT 开源协议TypeScript 编写。项目数据GitHubhttps://github.com/kepano/defuddleStars9,122语言TypeScript协议MIT创建时间2025 年 2 月最近更新2026 年 8 月二、能做什么Defuddle 的核心能力可以概括为 5 点能力说明智能识别正文通过评分算法分析每个 HTML 元素判断哪些是正文、哪些是噪音清除干扰元素广告、导航栏、侧边栏、页脚、Cookie 提示——全部自动移除提取元数据标题、作者、发布日期、站点名称等关键信息一并提取标准化输出将混乱的网页 HTML 转换为结构清晰的 HTML 或 Markdown保留特殊格式数学公式和脚注完整保留对学术文章和技术文档特别友好三、核心原理评分算法Defuddle 的秘密武器是一套基于启发式规则的评分算法。工作流程如下遍历 DOM 树解析网页的 HTML 结构为每个容器元素打分内容加分包含大量文字和p标签的元素获得高分——这通常意味着正文链接密度惩罚如果一个区域内链接占比过高比如导航栏分数会被大幅扣减聚类与筛选高分区域被保留低分区域被移除输出清洗后的内容剩余的 HTML 经过标准化处理转换为最终格式这套算法与 Readability 的思路相似但在实现细节和调优策略上有显著差异。Defuddle更激进地拥抱现代 Web 结构同时利用移动端样式信息来辅助判断内容区域。开启debug: true模式后可以看到完整的决策过程哪些元素被选中contentSelector、哪些被移除removals数组、每一步评分的细节——对开发者调试非常友好。四、三种构建模式按需选择Defuddle 提供了三种构建变体适应不同场景模式导入路径特点适用场景Coredefuddle最小体积仅输出 HTML对包体积敏感的浏览器环境Fulldefuddle/full内置 Markdown 转换Web 应用需要 Markdown 输出Nodedefuddle/node支持服务端 DOM 解析Node.js 后端、SSR 场景这种设计让你可以精确控制依赖体积浏览器插件用 Core笔记工具用 Full爬虫服务用 Node。五、5 分钟快速上手浏览器控制台尝鲜constDefuddle(awaitimport(https://cdn.jsdelivr.net/npm/defuddle0.19.1/esm)).default;// 直接传 document 对象不是 HTML 字符串constparsernewDefuddle(document,{url:location.href});constresultparser.parse();console.log(result);命令行使用npx defuddle parse https://example.com/article--markdown终端管道使用curldefuddle.md/https://example.com/article网页版直接访问https://defuddle.md/粘贴 URL 即可提取。六、真实应用场景场景 1Obsidian Web ClipperDefuddle 最知名的用户就是Obsidian Web Clipper——Obsidian 官方浏览器插件。当你浏览网页时点击「剪藏」背后就是 Defuddle 在提取正文、转换为 Markdown、注入到 Obsidian 笔记库中。场景 2RSS 阅读器很多 RSS 源只提供摘要全文需要跳转到原站。用 Defuddle 可以在服务端提取全文为用户提供完整的阅读体验。场景 3AI / LLM 上下文准备大语言模型的上下文窗口寸土寸金。把网页直接喂给 AI大量 token 浪费在广告和导航上。Defuddle 帮你把内容压缩到只剩精华让 AI 专注于真正重要的信息。场景 4网页归档与知识管理将网页内容提取后存入本地知识库如 Obsidian、Logseq构建属于自己的「第二大脑」。Defuddle 输出的 Markdown 格式天然适合这类工具。七、与同类工具对比对比项Readability.jsDefuddleTrafilatura作者MozillaObsidian 创始人学术团队语言JavaScriptTypeScriptPython输出格式HTMLHTML / MarkdownTXT / Markdown / XML最新更新较慢活跃中等现代 Web 适配保守激进中等包体积较大3 种变体可选较大浏览器使用原生CDN / npm不适用八、总结在信息过载的时代「从噪音中提取信号」是一项基础能力。Defuddle 用不到 1MB 的体积提供了一个优雅、高效、可扩展的解决方案。无论你是知识管理爱好者、RSS 重度用户、还是正在构建 AI 应用的开发者Defuddle 都值得加入你的工具箱。资源链接GitHub 仓库https://github.com/kepano/defuddle网页版https://defuddle.md/CDN 引入https://cdn.jsdelivr.net/npm/defuddle免责声明本文内容基于公开资料整理仅供技术交流参考。