技能使用指南

web-to-markdown(网页到Markdown)Skill 是什么?如何安装使用?

网页到MarkdownSkill(web-to-markdown)借助本地 web2md 命令行,把含 JS 渲染的网页一键转成干净 Markdown,支持正文提取、链接清理、批量转换与登录墙交互处理,让网页内容顺畅进入笔记库与 AI 工作流。本文详解安装步骤、参数用法、竞品对比与典型场景,帮你快速上手,立即阅读了解。

网页到MarkdownSkillweb-to-markdown
10 个章节 约 17 分钟阅读 AI 智能生成

网页到MarkdownSkill:把任意网页一键变成干净 Markdown,直达你的知识库与 AI 工作流

  • 专治“网页转不干净”:它不靠人工复制粘贴,而是用本地 Chromium 系浏览器真实渲染页面,再抽取正文、转成结构化 Markdown,JS 渲染的重页面也能拿到完整内容。
  • 三步走:打开、渲染、导出:调用本地 web2md 命令行,一行命令即可输出到终端、指定文件或按页面标题自动命名的目录。
  • 可控性极强:支持等待策略、CSS 选择器等待、毫秒级延时、无头/有头切换、登录态复用等参数,能应付登录墙和异步加载页。
  • 有“硬触发门”,不会乱启动:只有当用户在请求中明确写出 use the skill web-to-markdown 这类短语时,技能才会执行,避免误触发。
  • 最适合谁:需要把网页内容沉淀为文档的技术调研者、内容运营、知识库重度用户,以及为大模型准备语料的开发者。

该技能叫什么?如何下载安装 AI 技能提升开发效率?

技能中文名:网页到MarkdownSkill 技能英文名:web-to-markdown 技能ID:12105

它解决的是一个非常具体、也非常烦人的问题:网页上的内容看着好好的,一复制粘贴就变成一堆乱码般的富文本——导航栏、广告、推荐位、页脚全被带进来,排版错乱、链接带一堆跳转参数、图片丢失。更麻烦的是,很多现代网站(尤其是文档站、SaaS 产品页、单页应用)内容靠 JavaScript 动态渲染,用普通的“网页另存为”或抓取脚本拿到的往往是一个空白骨架。

这个技能的做法是:驱动你本地安装的真实浏览器打开页面,等页面渲染完成,用 Readability 提取正文主体,再用 Turndown 转成 Markdown,同时清理链接、可选附加 YAML 前端元数据。最终你得到的是一份可以直接贴进 Obsidian、Notion、GitHub 或喂给大模型的干净文本。

安装前提

  1. 技能侧:在 AI 技能商店或技能管理入口中安装「网页到MarkdownSkill(web-to-markdown)」,具体安装入口与账号权限要求以官方说明为准。
  2. 环境侧:本地需要 Node.js 环境(用于安装 web2md 命令行工具),以及一款 Chromium 家族浏览器(Chrome / Chromium / Brave / Edge 均可,技能基于 puppeteer-core 调用,推荐使用你日常在用的 Chrome)。
  3. 网络侧:能正常访问目标网页。

“一键安装”的三步思路

第一步:确认 CLI 是否已就位。 技能的工作机制依赖 web2md 这个本地命令行工具,因此每次使用前会先做一次存在性检查:

command -v web2md

第二步:缺失则安装。 按技能说明提供的两条路径:

  • 若可通过 npm 获取:npm install -g web2md
  • 若从源码安装:克隆代码仓库后执行 npm install && npm run build && npm link

第三步:验证是否生效。 安装完成后,先跑一次最简单的打印模式,看是否真的输出内容:

web2md 'https://example.com' --print

如果终端里输出了标题、段落、链接等结构化的 Markdown 文本,说明链路已经打通。若提示找不到浏览器,再通过 --chrome-path <路径> 手动指定 Chrome 可执行文件位置即可。

需要说明的是:这个技能不是“内置一个云服务”,而是把本地工具的能力接入到 AI 助手的对话流程里。所以安装成本主要在环境侧,装好之后长期复用,没有额外调用成本(具体计费策略以官方说明为准)。

该技能的主要功能和特点

1. 真实渲染,专治 JS 动态页面 通过 Puppeteer 驱动用户本地的 Chrome/Chromium/Brave/Edge,页面上的异步加载内容、懒加载段落、前端路由渲染的正文都能被完整拿到,而不是抓到一个空壳 HTML。这是它和绝大多数“Python requests + BeautifulSoup”式抓取最本质的区别。

2. 正文提取(Readability),只留有用部分 基于 Readability 算法识别页面主体内容,自动剥离导航栏、侧边栏、评论区、广告位和页脚,把“一篇文章”还原成“一篇文章”,而不是“一整个网页”。

3. 转 Markdown(Turndown),链接自动清理 把清洗后的 HTML 转成标准 Markdown,标题层级、列表、代码块、引用、表格结构得以保留;同时会清理链接中的冗余参数,并可选择附加 YAML 前端元数据(例如标题、来源等),方便做知识库归档。

4. 三种输出模式,适配不同工作习惯

  • 打印到标准输出(--print):适合快速看一眼效果,或直接交给下游模型处理。
  • 保存到指定文件(--out ./file.md):适合单篇精读、需要固定路径的场景。
  • 保存到目录(--out ./some-dir/):按页面标题自动命名,适合批量收集。

5. 丰富的渲染控制参数,应对“难搞的页面”

  • --interactive:显示浏览器并暂停,让你手动完成登录、验证码或点击“展开全文”,再按 Enter 继续抓取。
  • --wait-until load|domcontentloaded|networkidle0|networkidle2:控制等待时机,networkidle2 适合大多数页面。
  • --wait-for '<css选择器>':等到某个关键元素出现再提取,比重应用站点特别有效。
  • --wait-ms <毫秒>:固定延时兜底。
  • --user-data-dir <目录>:复用登录态与会话,使用专用配置文件目录更安全。
  • --headful / --no-sandbox:调试模式与容器/CI 环境适配。

6. 支持批量转换 创建输出目录后,对每个 URL 分别执行一次带 --out ./out/ 的命令即可,配合自动命名,几十个链接也能一趟跑完。

7. 明确的非目标与“硬触发门” 技能明确不使用 Playwright 等其他自动化栈,机制固定为 web2md,减少环境歧义。同时设置了硬触发门:只有用户明确写出 use the skill web-to-markdown ... 或 use a skill web-to-markdown ... 这样的短语时才会执行。如果你只是说“帮我抓个网页”,它会停下来提示你重新用完整短语发起请求——这不是故障,而是设计上的防误触机制。

如何使用该技能?

第 1 步:显式召唤技能。 在你的请求中必须包含触发短语,例如:

use the skill web-to-markdown 帮我把这个页面转成 Markdown:https://example.com/docs/intro

如果忘记写,技能不会启动,会请你重新发起请求。

第 2 步:说明 URL 与输出偏好。 技能会检查缺失信息并向你确认。URL 必须以 http:// 或 https:// 开头。输出偏好三选一:打印到终端、保存为指定文件、保存到一个目录(自动命名)。如果需要一次处理多个链接,直接给一个 URL 列表即可。

第 3 步:等待环境准备。 技能会运行 command -v web2md 确认工具存在;缺失时会指导你安装(见第一部分)。

第 4 步:执行转换。 以下是几个可直接参考的写法:

  • 单页保存为固定文件: web2md 'https://example.com/article' --out ./page.md
  • 单页保存到目录并按标题自动命名: mkdir -p ./out && web2md 'https://example.com/article' --out ./out/
  • 直接打印到终端: web2md 'https://example.com/article' --print
  • 需要登录或人工确认的页面: mkdir -p ./out && web2md 'https://example.com/private' --interactive --user-data-dir ./tmp/web2md-profile --out ./out/ 执行后在弹出的浏览器窗口中完成登录或展开操作,回到终端按 Enter 继续。
  • 重前端应用页面: web2md 'https://example.com/app' --wait-until domcontentloaded --wait-ms 2000 --wait-for 'main' --out ./out/

第 5 步:核对输出。 若写入文件,技能会验证文件存在且非空(例如用 ls -la <路径> 与 wc -c <路径> 检查大小)。若使用打印模式,Markdown 内容会直接返回到对话中。

第 6 步:接收结果。 你会拿到保存的文件路径清单,或终端里的 Markdown 文本。若正文有缺失,通常是因为等待时机不对,换用 --wait-for 指定一个稳定的内容容器选择器后重试即可。

同类型竞品对比分析

方案名称 定位 核心功能 安装/使用门槛 适用场景 优势与不足
web-to-markdown(本技能) 本地 CLI + AI 技能,把网页转成干净 Markdown 真实浏览器渲染、Readability 正文提取、Turndown 转换、登录态交互、批处理 需 Node.js 与 Chromium 系浏览器;装好后一条命令完成 技术调研、知识库沉淀、AI 语料准备、登录墙页面 优势:JS 页面通吃、输出干净、参数可控、可批量;不足:需要本地环境,首次配置有一定门槛
浏览器剪藏插件(如各类网页转 Markdown 扩展) 浏览器端一键剪藏 单页剪藏、保存为 Markdown、部分支持选区 装插件即可,几乎零门槛 日常随手收藏、单篇文章归档 优势:上手极快、可视化;不足:难以批量、复杂渲染页面容易缺内容、登录态依赖当前浏览器状态
在线网页转 Markdown 服务 网页版转换工具 粘贴 URL 后云端抓取并返回 Markdown 无需安装,打开网页即用 临时转换、跨设备轻量使用 优势:零配置;不足:隐私与内网页面不可用、抓不到登录后内容、批量与大文件受限(具体限制以官方说明为准)
自建脚本(requests/BeautifulSoup 或 Playwright 自研) 开发者自建方案 完全自由定制 需要写代码与维护 有特殊抽取逻辑的深度需求 优势:灵活度最高;不足:开发维护成本高,正文提取与 Markdown 转换质量要自己调

可以看出,本技能的位置很清晰:它比插件更适合批量与自动化,比在线服务更适合隐私敏感和登录内容,比自研脚本更省事——相当于把“浏览器渲染 + 正文提取 + Markdown 转换”这条成熟流水线直接封装成一次对话调用。

该技能的典型应用场景与实际体验情况

场景一:技术调研与竞品资料收集(产品经理 / 研究员) 痛点:一天要翻十几篇文档站和博客,复制粘贴后格式全乱,还得手工删掉导航和推荐位。 用法:把链接列表交给技能,创建 ./out/ 目录后批量跑 --out ./out/,按页面标题自动命名。 实际体验:上手难度低,只要会写触发短语就能用;效果上正文提取相当干净,代码块和列表基本原样保留。注意事项是多链接时建议逐个执行并检查文件大小,避免个别页面因加载慢产出空文件。

场景二:知识库与笔记系统沉淀(知识管理重度用户) 痛点:收藏了一堆网页,回头翻的时候发现链接失效、内容改版,等于白收藏。 用法:单页保存为固定文件,或在参数中启用 YAML 前端元数据,把来源与标题一起写进 Markdown 头部。 实际体验:转出来的 Markdown 在 Obsidian、Notion 等工具中粘贴后层级清晰,链接被清理过,不会带一长串跟踪参数。注意图片仍是外链形式,长期归档建议自行下载图片。

场景三:为大模型准备上下文语料(开发者 / AI 使用者) 痛点:想让模型基于某篇网页内容回答问题,但直接把 HTML 贴进去既超长又干扰理解。 用法:用 --print 直接拿到 Markdown,再交给后续处理;或保存为文件后按需切片。 实际体验:去掉了导航与脚本噪音后,同等信息量的 token 消耗明显下降,模型对结构的理解也更准。注意部分重应用页面需要先调 --wait-until domcontentloaded --wait-ms 2000 再加 --wait-for 'main',否则可能抓到加载中的骨架。

场景四:需要登录才能看的内容(运营 / 分析岗) 痛点:后台报表、付费社区、内部 Wiki 都需要登录,普通抓取工具完全无能为力。 用法:加 --interactive 配合 --user-data-dir,在弹出窗口中手动登录后按 Enter 继续。 实际体验:这是该技能最实用的“隐藏技能”。建议使用专用 profile 目录,不要指向日常浏览器的用户数据目录,以免影响正常使用;涉及敏感账号时请自行评估合规边界。

该技能能为用户带来的价值

效率层面:一段需要“打开网页 → 全选 → 粘贴到编辑器 → 逐段删导航和广告 → 重新调格式”的十分钟活儿,被压缩成一次命令调用。批量场景下,几十个链接的收集从半天量级降到几分钟量级。

质量层面:Readability + Turndown 的组合意味着输出的不是“看起来像文本的富文本残渣”,而是层级、列表、代码块都有结构的 Markdown,后续再做整理、检索、二次加工的成本大幅降低。

门槛层面:不需要会写爬虫、不需要理解 DOM 选择器也能用起来;需要精细控制时,参数又足够透明(等待策略、选择器、会话目录),从“小白”到“进阶用户”是平滑过渡的。

长期价值:它把“网页内容”变成了“可复用的文本资产”。一旦形成用 Markdown 沉淀资料的肌肉记忆,你的笔记库、提示词库、语料库会持续增值——而链接会失效,网页会改版,只有本地的那份 Markdown 一直在。

常见问题 FAQ

Q1:为什么我说“帮我转一下这个网页”,技能没有反应? 这是设计使然。该技能设有硬触发门,只有当你的请求中明确指出 use the skill web-to-markdown(或 use a skill web-to-markdown)时才会执行。请按这个格式重新发起请求,并附上以 http:// 或 https:// 开头的完整 URL。

Q2:安装时提示找不到 web2md 命令怎么办? 先运行 command -v web2md 确认是否已安装。若没有,可通过 npm install -g web2md 安装;若该命令不可用,则从源码安装:克隆仓库后执行 npm install && npm run build && npm link。具体可用的分发方式以官方说明为准。

Q3:转换出来的内容是空的或者缺了正文,怎么排查? 按顺序试三招:第一,把等待策略调到 --wait-until networkidle2;第二,对重前端页面改用 --wait-until domcontentloaded --wait-ms 2000 再加 --wait-for 'main'(或换成页面上稳定的内容容器选择器);第三,如果页面需要登录或手动展开,加 --interactive 人工介入。另外可用 --headful 观察真实渲染过程来定位问题。

Q4:这个技能收费吗?适合谁用? 技能本身如何计费(是否免费、是否需要订阅)请以官方说明为准;而底层 web2md 是本地命令行工具,转换在你自己机器上完成。它最适合三类人:需要批量收集资料的研究/运营岗、重度知识库用户、以及为大模型准备语料的开发者。如果你只是偶尔存一篇文章,浏览器剪藏插件可能更轻便。

Q5:和浏览器插件、在线转换服务相比该怎么选? 看三点:是否需要批量(本技能胜出)、是否涉及登录或内网内容(本技能胜出,在线服务不可用)、是否只偶尔用一次(插件更省事)。如果你是长期、成规模地把网页变成文本资产,本技能的“一次配置、长期复用”性价比最高。