mcpField
W
web-to-markdown

web-to-markdown

github.com/rookie-ricardo文档处理937249 次安装14 周前更新
代码仓库

关于 web-to-markdown

web-to-markdown 是一项按域名选择抓取路径并输出清理后 Markdown 的技能。它为普通网页、YouTube 及微信、知乎、飞书等站点选择不同提取方式,并为通用网页提供备用路径。

主要功能

  1. 01按域名选择 URL 路由
  2. 02提取网页并转换为 Markdown
  3. 03提取 YouTube 字幕与内容
  4. 04特殊站点的 HTTP 与浏览器备用方案
  5. 05可选输出 JSON 元数据

适用场景

  1. 01将网页文章转换为 Markdown
  2. 02提取 YouTube 链接内容
  3. 03抓取微信、知乎或飞书页面
  4. 04查看提取来源和解析后的 URL

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rookie-ricardo/erduo-skills --skill web-to-markdown

安装后在 Claude Code 中输入/web-to-markdown确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

package-lock.json
package.json
agents/
openai.yaml
references/
routing-and-notes.md
scripts/
fetch_generic_fallback.mjs
fetch_special_sites_http.mjs
fetch_special_sites.mjs
url_to_markdown.mjs

详细介绍

网页转 Markdown

通过应用与域名相关的抓取路由,将 URL 转换为可用的 Markdown,然后直接返回清理后的内容。

快速工作流

  1. 规范化并验证输入 URL。
  2. 选择路由:
  • r.jina.ai:通用网页和 X/Twitter。
  • defuddle.md:YouTube 字幕/内容提取。
  • special-browser-fetch:微信/知乎/飞书。
  1. 返回 Markdown 文本(如有需要,也可返回 JSON 元数据)。

对于通用 URL(非 YouTube、微信/知乎/飞书),使用以下回退链:

  • 首先尝试 r.jina.ai,
  • 如果失败,则回退到直接 HTTP 抓取 + Readability,
  • 如果直接抓取仍然失败或返回类似 shell 的内容,则回退到浏览器提取。

命令

从此技能目录(skills/web-to-markdown)运行:

npm install
node scripts/url_to_markdown.mjs <url>

返回包含 Markdown 的元数据:

node scripts/url_to_markdown.mjs <url> --json

强制使用特殊网站的浏览器提取:

node scripts/fetch_special_sites.mjs <url> --json

路由策略

  • 默认路由:https://r.jina.ai/<url>。
  • YouTube(youtube.com、youtu.be):https://defuddle.md/<url>。
  • X/Twitter(x.com、twitter.com):https://r.jina.ai/<url>。
  • 微信/知乎/飞书:运行 scripts/fetch_special_sites.mjs。
  • 如果输入已经是代理格式(https://defuddle.md/https://... 或 https://r.jina.ai/https://...),则规范化回原始 URL 并重新应用路由。

特殊网站提取行为

对微信/知乎/飞书采用两阶段策略:

  1. 首先尝试 cuimp HTTP/TLS 伪装,然后使用 Mozilla Readability 清理 HTML。
  2. 如果阶段 1 失败或返回被拦截的内容/类似 shell 的内容,则回退到 puppeteer-extra 浏览器伪装。
  • HTTP 阶段通过 cuimp 伪装成现代 Chrome 的 TLS/HTTP 配置。
  • 浏览器阶段伪装成现代 Chrome 用户代理,并使用标准 sec-ch-ua 标头。
  • 尽力移除已知的登录弹窗和背景遮罩。
  • 滚动页面以触发延迟加载的文章内容块。
  • 使用 Mozilla Readability 解析清理后的文档。
  • 通过 Turndown 将提取的 HTML 正文转换为 Markdown。
  • 优先从 CHROME_PATH 解析浏览器可执行文件,然后依次尝试系统中的 Chrome/Chromium/Edge 路径。

如果特殊网站因反机器人检查、仅限账户访问的页面或网络限制而提取失败,请明确报告失败,并请求提供备用输入(例如页面原始文本)。

输出约定

常规使用时,仅输出 Markdown。

使用 --json 时,返回:

  • source:后端来源(r.jina.ai、defuddle、cuimp、browser-readability)。
  • strategy:所选路由(r-jina、defuddle、special-http-fetch、special-browser-fetch-fallback)。
  • requestedUrl:原始输入。
  • resolvedUrl:规范化后的/最终 URL。
  • markdown:提取出的 Markdown 正文。

资源

  • references/routing-and-notes.md:域名路由规则和操作注意事项。
  • scripts/url_to_markdown.mjs:主要入口。
  • scripts/fetch_special_sites_http.mjs:微信/知乎/飞书 HTTP 伪装抓取器(cuimp JS)。
  • scripts/fetch_special_sites.mjs:两阶段提取器(优先 HTTP,失败后回退到浏览器)。

评论

支持 Markdown