网页净化器
将网页正文提取为适合知识库摄取的干净 Markdown。
技能仅声明 Read 和 Bash,并说明内容输出到 stdout 或 .raw/,也提及 defuddle-cli 来源;但 Bash 权限较宽,安装使用未锁定版本,抓取 URL 会产生外部网络数据流,没有用户确认、敏感数据提示、回滚机制或失败后的恢复说明,因此扣分。
安装、版本检查、URL/HTML 输入、保存、跳过条件和 WebFetch 回退构成连贯流程;但选定技能没有测试、固定依赖或可诊断的抓取/解析失败处理,40–60% 节省和稳定提取效果未被文件内证据复现,因此扣分。
触发词、适用场景、跳过场景和本地 HTML 输入都较明确;但未说明非文章页面的更多边界、平台要求或中文输出/中文网页适配,且 npm 与目标网页访问可能受中国大陆网络限制,因此扣分。
文档包含 frontmatter、安装、验证、用法、场景、回退和 wiki-ingest 集成说明,并给出上游项目归属与版本提示;但缺少该技能自身的版本历史、变更记录、维护责任、升级策略、参数约定和故障排查细节,因此扣分。
技能明确产出清洁 Markdown,并提供直接输出和保存命令,核心网页清理任务具有实际用途;但抽取质量依赖启发式工具,失败时仅建议放弃或回退,未提供代表性结果或比较验证,仍可能需要人工重作,因此扣分。
技能提供上游 defuddle-cli 的仓库链接、安装后的版本检查命令和可复现的命令示例;但本次仅静态阅读,未执行命令,且没有针对该技能的测试、样例输出或第三方运行证据,因此只能给有限分数。
- 安装使用未固定 defuddle-cli 版本,存在供应链与行为漂移风险。
- 抓取 URL 会将页面内容交给外部网络工具;处理敏感或私有页面前应先确认数据流和授权。
- 示例 shell 命令未系统展示安全的 URL/路径转义;复杂或不可信输入可能导致命令和文件路径问题。
- 中文网页、需要登录的页面、动态应用和大陆网络可达性未得到验证。
这个 Skill 能做什么,适合哪些场景?
defuddle 用于在网页内容进入 Obsidian 知识库前清理页面。它移除广告、Cookie 横幅、导航栏、页眉页脚、相关文章和社交分享按钮,只保留文章主体并输出干净 Markdown。该技能适合新闻、博客和文档页面,也可处理本地 HTML 文件。对于已经是 Markdown 或 PDF 的内容、仪表盘和应用页面,则应跳过它。
运行 defuddle-cli 读取 URL 或本地 HTML 文件,提取文章主体并将清理后的 Markdown 输出到标准输出。结果可以直接保存到 .raw/articles/,也可以在保存后补充 source_url 和 fetched 日期等 YAML frontmatter。如果 defuddle 未安装,技能会检查命令是否存在,并建议改用 WebFetch,代价是内容可能不够干净。
- 需要把新闻文章导入 Obsidian 知识库的研究者,希望先去除页面外围内容。
- 整理博客或文档网页的个人知识管理用户,希望降低长文章的令牌消耗。
- 使用 Claude Code 构建第二大脑、需要将网页来源保存到 .raw/ 的用户。
- 只有本地 HTML 文件、希望提取其中可读正文的用户。
这个 Skill 有哪些优点和局限?
- 专注于文章主体提取,能移除常见网页杂乱内容。
- 输出标准 Markdown,便于保存到 Obsidian 和后续知识库摄取。
- 源材料称典型网页可减少 40%–60% 的令牌使用量。
- 支持 URL 和本地 HTML 文件,并提供未安装时的 WebFetch 回退。
- 面向文章式网页,不适合仪表盘、应用页面或结构化数据。
- 提取质量依赖页面结构和工具启发式规则,部分页面可能提取不佳。
- 未安装 defuddle-cli 时只能使用质量较低的直接抓取回退。
- 源材料没有展示该技能独立的测试结果或测试套件。
如何安装这个 Skill?
先安装命令行依赖:npm install -g defuddle-cli。然后运行 defuddle --version 验证安装。仓库整体的安装方式另有文档,包括克隆仓库并运行 bash bin/setup-vault.sh,或将其作为 Claude Code 插件安装;源材料没有提供单独安装 defuddle 技能目录的命令。
如何使用这个 Skill?
清理网页:defuddle 'https://example.com/article'。清理本地 HTML:defuddle page.html。保存网页结果:defuddle 'https://example.com/article' > .raw/articles/article-slug-$(date +%Y-%m-%d).md。技能说明建议在 URL 摄取前使用它;与 /wiki-ingest 集成时,摄取技能会自动检查并调用 defuddle(该集成属于仓库中的其他技能)。