资讯详情

资讯详情

Defuddle 使用教程:一条命令提取网页正文为 Markdown

Defuddle 使用教程一条命令提取网页正文为 Markdown【免费下载链接】defuddleGet the main content of any page as Markdown.项目地址: https://gitcode.com/gh_mirrors/de/defuddleDefuddle 是一个网页内容提取工具给它一个 URL 或本地 HTML 文件它会自动认出文章主体把侧边栏、广告位、评论区剥掉返回干净的内容和标题、作者、发布日期等元数据。写代码的开发者可以把它当库集成只想把网页快速变成 Markdown 的人也能零代码跑通。 一条命令出结果先不装任何东西最省事的方式是用npx跳过全局安装、当场运行。它接受三种输入本地文件、URL、或者从 stdin 管道喂进来的 HTML。# 本地 HTML 文件输出 Markdown 正文 npx defuddle parse article.html --markdown # 直接给 URLDefuddle 自己负责抓取页面 npx defuddle parse https://example.com/article --markdown # 把已有的 HTML 从管道喂进去 cat page.html | npx defuddle parse --markdown默认输出是 HTML 正文加--markdown或-m才得到 Markdown。需要长期在 Node.js 项目里用时再执行npm install defuddle或者npm install -g defuddle把defuddle命令装到全局。 读懂输出Defuddle 给你什么不确定提取结果长什么样时先用--json跑一遍所有字段一目了然。# 以 JSON 输出完整结果含元数据 npx defuddle parse article.html --json日常最常用的几个字段content/contentMarkdown清洗后的正文分别是 HTML 和 Markdowntitle、author、published标题、作者、发布日期wordCount、parseTime正文字数、解析耗时毫秒schemaOrgData页面里嵌入的 schema.org 结构化数据结果想进笔记软件把元数据挂到头部就行# 在开头附上 YAML frontmatter直接写入 note.md npx defuddle parse article.html --markdown --frontmatter -o note.md只想要某一个字段的话--property一步到位# 只输出标题 npx defuddle parse article.html --property title换到 Node.js 或浏览器里用作为库集成时两个环境的 API 形态一致传入文档拿回内容和元数据。Node.js 需要一个 DOM 实现linkedom 或 jsdom且package.json里要声明type: module// Node.js用 linkedom 解析 HTML 字符串请求 Markdown 输出 import { parseHTML } from linkedom; import { Defuddle } from defuddle/node; const { document } parseHTML(html); const result await Defuddle(document, https://example.com/article, { markdown: true }); console.log(result.content); // Markdown 正文 console.log(result.title, result.author);浏览器端则完全不用装 DOM 库// 浏览器直接解析当前页面 import Defuddle from defuddle; const result new Defuddle(document).parse();包内有三个入口默认的defuddle面向浏览器defuddle/full额外提供 MathML 与 LaTeX 互转defuddle/node面向 Node.js、功能最全。想读源码可以git clone https://gitcode.com/gh_mirrors/de/defuddle拉下来翻。⚙️ 调行为一张表看懂选项和调试默认配置就能用只在没认出正文或不想保留图片时才需要动手。选项出处作用--markdown/-mCLI正文转 Markdown--json/-jCLI输出带元数据的完整 JSON--frontmatter/-fCLI开头加 YAML frontmatter--output/-o fileCLI写入文件而不是打印到终端--property/-p nameCLI只取单个字段如 title、author--user-agent stringCLI自定义 UA应对 403contentSelectorAPI直接指定正文选择器跳过自动识别removeImages默认 falseAPI移除图片removeSmallImages默认 trueAPI移除图标、跟踪像素languageAPI首选语言BCP 47如zh、enuseAsync默认 trueAPI是否允许异步提取器请求第三方 API想知道它为什么选这一段开调试模式npx defuddle parse article.html --debug结果的debug字段里包含正文元素最终选中的 CSS 选择器contentSelector、被移除元素的清单和原因removals、以及捕获到的错误errors。如果某个清理环节误伤内容API 里还能单独关掉对应步骤比如removeLowScoring: false会跳过基于评分的剔除。三个用得上的实战做法批量归档一个目录的 HTML。for 循环加 frontmatter笔记可以直接入库for f in articles/*.html; do npx defuddle parse $f --markdown --frontmatter -o notes/$(basename $f .html).md done接进管道喂给别的工具。stdin 支持意味着它可以插在任意流程中间# curl 拉页面后直接提取正文 curl -sL https://example.com/post | npx defuddle parse --markdown处理特殊站点。内置了 YouTube、Reddit、X、维基百科等站点的专用提取器甚至能拉取视频字幕规则都在 src/extractors/ 目录里。遇到对默认 UA 返回 403 的站点给 URL 加上--user-agent换成浏览器 UA 即可。 答疑正文靠 JS 渲染才出现怎么办Node 端默认走的parseAsync()会在 HTML 里找不到正文时退回站点专用异步提取器比如 YouTube 页面会去拉字幕。不想发任何网络请求就设useAsync: false。正文识别不对怎么办先加--debug看选中的选择器和移除清单定位原因站点结构固定的话直接指定contentSelector更稳。数学公式和脚注支持吗支持MathJax/KaTeX 会统一转成标准 MathML脚注引用也会被标准化需要 MathML 与 LaTeX 互转时改用 full 版打包。和 Readability 比有什么差别定位是同类替代品但策略更保守拿不准的少删用移动端样式辅助判断哪些是干扰元素元数据提取得更全。收尾一句话总结Defuddle 把杂乱的网页变成干净正文 结构化元数据命令行应付一次性需求API 应付长期流水线。想深入的话从 README 开始再看 主提取逻辑、清理规则 和 元素标准化实现 三条线就够覆盖全貌。核心关键词Defuddle 网页内容提取长尾关键词网页转 Markdown、npx defuddle parse、Defuddle 命令行用法、文章正文提取、网页清理工具【免费下载链接】defuddleGet the main content of any page as Markdown.项目地址: https://gitcode.com/gh_mirrors/de/defuddle创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →