16 KiB
1
我现在有一个诉求,我提供URL,一般是知乎、小红书或者公众号和X上的,都是文章的链接,我需要把文章下载成md,带图。
这个有没有现成的skill,我就不用重复造轮子了。
你除了评估外,能否先做检索呢?
可以,以后你给 URL / GitHub 项目名时,我可以先做检索,再做评估。 针对你这个“知乎 / 小红书 / 公众号 / X 链接 → 下载成 Markdown,带图”的诉求,我刚检索了一轮,结论是:
快速结论
不用从零造轮子。
但也不要期待一个工具完美覆盖四个平台。更现实的方案是:
主方案:OpenCLI 作为统一入口 补充方案:微信公众号用专门工具兜底,小红书 / X 根据场景用专用 Skill 或插件兜底 最后再做一个你自己的轻量 wrapper Skill:只负责识别 URL 域名、调用不同工具、整理输出目录。
这比自己重写爬虫、处理登录、图片懒加载、防盗链、反爬、X API 变化要划算很多。
1. 最值得先试的现成方案:OpenCLI
一句话判断
OpenCLI 是目前最接近你需求的“统一型工具底座”。
它明确支持把多个网站变成 CLI,并且内置知乎、小红书、Twitter/X、微信公众号等适配器。README 里写到它可以用内置 adapter 处理 Bilibili、Zhihu、Xiaohongshu、Twitter/X 等站点,也可以通过 Chrome 登录态让 AI Agent 操作网页。(GitHub)
它的下载支持页明确列出了这些能力:
| 平台 | OpenCLI 官方说明里的能力 |
|---|---|
| 小红书 | 下载 note 的图片、视频 |
| Twitter/X | 下载用户媒体或单条 tweet 的图片、视频 |
| 知乎 | 导出文章为 Markdown,可选下载图片 |
| 微信公众号 | 导出公众号文章为 Markdown |
这些都出现在 OpenCLI 的 Download Support 文档里。(OpenCLI)
对你这个需求的适配度
匹配度:高,但不是完全无脑。
OpenCLI 对知乎和公众号最贴近你的原始目标:
知乎文档里有 opencli zhihu download,示例支持 --download-images 导出知乎文章为 Markdown 并下载图片。(GitHub)
微信公众号文档里有 opencli weixin download --url ... --download-images,输出包含 Markdown frontmatter 和 images 目录。(GitHub)
小红书这边,它更偏“下载 note 内容 / 图片 / 视频”,文档里有 opencli xiaohongshu note 读取完整笔记内容,有 opencli xiaohongshu download 下载图片和视频,但要注意它还提示很多小红书场景需要带 xsec_token 的完整 URL,裸 note ID 不可靠。(GitHub)
X 这边,OpenCLI 有 twitter thread、twitter article、twitter download 等命令,其中 download 明确是下载 profile 媒体或单条 tweet 媒体;如果你的目标是“线程正文 + 图片 → Markdown”,可能需要组合 thread/article + download,或者交给一个 wrapper Skill 做整合。(GitHub)
环境适配
对你的 Windows 本地环境很友好:你有 Node.js 常用环境,且无 Docker / 无 WSL;OpenCLI 要求 Node.js >= 20,通过 npm install -g @jackwener/opencli 安装,并需要 Chrome/Chromium Browser Bridge 扩展。(GitHub) 这比 Docker 化爬虫更适合你的本地环境。
不太适合优先放 CentOS 远程,因为它依赖 Chrome 登录态和 Browser Bridge。你的远程 CentOS 虽然能 Docker、有公网 IP,但无 GPU不是问题,真正问题是远程浏览器登录态、Cookie、账号风控、端口暴露和会话隐私。你的本地 Windows + Chrome 登录态更自然,也符合你常用 Python/Node、Codex/Claude Code 的习惯。
2. 第二个值得看:web2md Skill
一句话判断
web2md 是一个更像“正好为你这个诉求写的 Claude/Codex Skill”,但项目很新,成熟度低。
它的 GitHub README 写得很直接:把微信公众号文章和网页转成 Markdown,下载所有图片到本地,保留格式,并添加 YAML frontmatter。(GitHub)
它的工作方式是:
- 用 Playwright 打开页面;
- 滚动触发懒加载图片;
- 抽取标题、作者、日期等元数据;
- 清理广告和非正文区域;
- 下载图片到本地 images 目录;
- HTML 转 Markdown;
- 写入带 frontmatter 的
.md文件。(GitHub)
这套逻辑非常接近你想要的“URL → md + images”。
但问题也很明显
它现在只有 0 stars、0 forks、2 commits、无 release。(GitHub) 所以我不会建议你把它当成熟工具长期依赖。更合理的定位是:
可以收藏、试跑、借鉴 Skill 结构,但不建议直接当主力。
它要求 Python 3.9+ 和 Google Chrome。(GitHub) 这对你的 Windows 本地没问题;但 Playwright / Chrome 自动化在不同网页上失败概率不低,尤其是公众号、小红书、X 这种强平台页面。
3. 微信公众号专用:wechat-article-to-markdown
一句话判断
如果你的公众号文章保存需求很高,这个比通用工具更值得单独试。
jackwener/wechat-article-to-markdown 明确支持:
- 抓取微信公众号文章;
- 提取标题、账号名、发布时间、来源 URL;
- 转 Markdown;
- 下载图片到本地
images/并重写链接; - 处理微信代码块。(GitHub)
安装方式也比较友好:推荐 uv tool install wechat-article-to-markdown,也支持 pipx install。(GitHub)
输出结构正好是 <article-title>.md + images/。(GitHub)
对你的价值
公众号方向:值得本地试跑。
它比 web2md 更聚焦,输出结构也符合知识库归档。主要风险是它使用 Camoufox 做 anti-detection fetching,这意味着依赖浏览器自动化/反检测能力,后续微信页面结构或风控策略变化时可能失效。(GitHub)
4. 小红书专用方案
小红书比公众号和知乎更麻烦,因为很多“有价值内容”其实在图片里,不只是 HTML 正文。
我检索到几个方向:
A. OpenCLI 小红书 adapter
OpenCLI 支持 xiaohongshu note 读取笔记正文、作者、描述、点赞、收藏、评论、标签,也支持 xiaohongshu download 下载图片和视频。(GitHub)
这是我建议你优先试的方案。
B. xhs-note-to-md
DrErwin/xhs-note-to-md 明确是“小红书帖子转 Markdown 文档”,支持正文、图片、OCR、评论区,并且说明适合把小红书知识帖、长图笔记、截图文章整理成本地文档。(GitHub)
但它依赖 xiaohongshu-skills、浏览器插件桥接、小红书账号登录,以及至少一个 OCR 引擎。(GitHub)
这说明它更像“Codex Skill 拼装工作流”,不是一个独立成熟 CLI。
对你来说:可以作为 Skill 候选,但建议先交给 Codex/Claude Code 体检,不建议直接盲装。
C. xiaohongshu-importer
这是 Obsidian 插件,能从小红书分享链接导入标题、正文、图片、视频和标签,并可选择把媒体下载到 Obsidian vault。(GitHub)
如果你最终目标是 Obsidian 知识库,这个值得试;如果你想做通用 URL → Markdown 自动化,它不如 OpenCLI 或自定义 wrapper 灵活。
5. X / Twitter 方案
X 是四个平台里最不稳定的,因为登录态、GraphQL、风控、API 变化都比较频繁。
A. OpenCLI X adapter
OpenCLI 有 twitter thread、twitter article、twitter download 等命令。twitter download 文档明确支持从用户媒体页或单条 tweet URL 下载媒体。(GitHub)
但我没有看到它直接承诺“一条 X 链接 → Markdown + 图片完整归档”。所以它更像底层能力,而不是成品归档工具。
B. baoyu-danger-x-to-markdown
这个是一个 X to Markdown Skill,描述里说可以把 tweets / threads 转 Markdown,也能提取 X Articles,并生成 YAML frontmatter。(LobeHub)
但它自己也强调使用 reverse-engineered X API,并且需要用户同意后才继续。(LobeHub) 这类工具我会谨慎放入长期系统:能用,但容易因为 X 改接口而失效,也存在账号风控和合规风险。
6. 通用网页兜底:MarkDownload
MarkDownload 是浏览器扩展,可以把网页剪藏成可读 Markdown,并支持 Chrome、Firefox、Edge、Safari。(GitHub)
优点是成熟度高,GitHub 上约 3.9k stars,浏览器插件形态也适合人工快速保存。(GitHub)
但它自己也提醒“不保证所有网站都能工作”。(GitHub) 对你这个诉求,它适合做:
人工兜底工具,不适合做自动化主力。
尤其小红书、X、公众号这类登录态/动态加载/反爬较多的平台,不应该指望普通 Readability + Turndown 一把梭。
7. 推荐路线
我建议你不要造完整爬虫
你真正该做的是一个很薄的 URL Router Skill:
输入:URL
↓
识别域名
↓
调用对应工具
↓
统一输出目录结构
↓
生成 article.md + images/ + metadata.json
↓
可选:写入 Obsidian / 知识库 / Dify / OpenClaw
推荐路由:
| URL 类型 | 优先工具 | 兜底工具 |
|---|---|---|
mp.weixin.qq.com |
OpenCLI weixin download | wechat-article-to-markdown / web2md |
zhuanlan.zhihu.com / zhihu.com |
OpenCLI zhihu download --download-images | MarkDownload |
xiaohongshu.com / xhslink.com |
OpenCLI xiaohongshu note + download | xhs-note-to-md / xiaohongshu-importer |
x.com / twitter.com |
OpenCLI twitter thread/article/download | baoyu-danger-x-to-markdown |
| 普通网页 | web2md / MarkDownload | 自己用 Readability + Playwright |
8. 评分表
| 方案 | 覆盖你的需求 | Skill/Agent 价值 | Windows 本地可行性 | 成熟度 | 风险 | 结论 |
|---|---|---|---|---|---|---|
| OpenCLI | 4.5/5 | 5/5 | 4/5 | 4/5 | 中 | 主推,先试 |
| wechat-article-to-markdown | 4/5 | 3.5/5 | 4/5 | 3.5/5 | 中 | 公众号专用首选 |
| web2md | 4/5 | 4.5/5 | 4/5 | 2/5 | 中高 | 适合借鉴/试跑,不宜主力 |
| xhs-note-to-md | 4/5 | 4.5/5 | 3/5 | 2/5 | 高 | Skill 候选,需体检 |
| xiaohongshu-importer | 3.5/5 | 2.5/5 | 4/5 | 3/5 | 中 | Obsidian 用户可试 |
| baoyu-danger-x-to-markdown | 3.5/5 | 4/5 | 3/5 | 3/5 | 高 | X 兜底,不宜长期依赖 |
| MarkDownload | 3/5 | 2/5 | 5/5 | 4/5 | 低中 | 人工兜底很好 |
9. 我的明确建议
主动作
先试 OpenCLI。
原因很简单:它同时覆盖你提到的四类平台,并且已经有 Claude/Codex Skill 化方向;它不是单纯爬虫,而是“浏览器登录态 + CLI adapter + Agent 可调用”的工具底座,和你的 AI Skill / Agent / 自动化工作流方向最匹配。(GitHub)
次动作
把 wechat-article-to-markdown 作为公众号专用兜底工具。
公众号文章的保存需求如果频繁,这个项目更直接,输出目录也很符合你的 Markdown 知识库归档需求。(GitHub)
不建议做的事
不要一开始就自己写:
- 小红书解析器;
- X GraphQL 解析器;
- 微信图片防盗链下载器;
- 通用反爬浏览器自动化框架。
这些都是维护黑洞。你要做的是整合层 Skill,不是平台爬虫内核。
10. 最小试跑路径
你可以先按这个顺序试:
# 1. 安装 OpenCLI
npm install -g @jackwener/opencli
# 2. 检查 Node >= 20
node --version
# 3. 安装/启用 OpenCLI Browser Bridge 扩展
opencli doctor
# 4. 试公众号
opencli weixin download --url "https://mp.weixin.qq.com/s/xxx" --download-images --output ./articles/weixin
# 5. 试知乎
opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --download-images --output ./articles/zhihu
# 6. 试小红书
opencli xiaohongshu download "https://xhslink.com/..." --output ./articles/xhs
# 7. 试 X 单条媒体
opencli twitter download --tweet-url "https://x.com/user/status/xxx" --output ./articles/x
然后再让 Codex/Claude Code 做一个 wrapper:
给定任意 URL:
1. 判断域名;
2. 调用对应 opencli 命令;
3. 如果失败,切换到专用兜底工具;
4. 输出统一目录:
/saved_articles/
/{platform}/
/{date}-{slug}/
article.md
images/
metadata.json
raw.html 可选
5. 不自动批量抓取,不绕过登录,不保存 cookie/token。
项目卡片
- 一句话定位:URL 到 Markdown + 图片的需求已有现成工具,OpenCLI 最适合做统一底座。
- 适用场景:知乎文章、公众号文章、小红书笔记、X thread/article/media 的个人归档与知识库输入。
- 不适用场景:大规模采集、绕登录、绕风控、批量抓私域内容、商业爬取。
- 对你的价值:高,适合做成长期 Skill / Agent 工具节点。
- 运行要求:Windows 本地优先;Node.js >= 20;Chrome/Chromium;部分平台需要登录态;公众号兜底可用 Python/uv 工具。
- 主要风险:平台反爬、登录态失效、X 接口变化、小红书链接 token 失效、图片防盗链、版权和合规。
- 推荐动作:先试 OpenCLI;公众号单独试
wechat-article-to-markdown;再写一个轻量 URL Router Skill。 - 是否进入 Codex 深挖:是。
- 后续动作:让 Codex 检查 OpenCLI 的四个平台 adapter,并实现一个统一输出的 wrapper Skill。