328 lines
16 KiB
Markdown
328 lines
16 KiB
Markdown
# 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][1])
|
||
|
||
它的下载支持页明确列出了这些能力:
|
||
|
||
| 平台 | OpenCLI 官方说明里的能力 |
|
||
| --------- | ---------------------- |
|
||
| 小红书 | 下载 note 的图片、视频 |
|
||
| Twitter/X | 下载用户媒体或单条 tweet 的图片、视频 |
|
||
| 知乎 | 导出文章为 Markdown,可选下载图片 |
|
||
| 微信公众号 | 导出公众号文章为 Markdown |
|
||
|
||
这些都出现在 OpenCLI 的 Download Support 文档里。([OpenCLI][2])
|
||
|
||
## 对你这个需求的适配度
|
||
|
||
**匹配度:高,但不是完全无脑。**
|
||
|
||
OpenCLI 对知乎和公众号最贴近你的原始目标:
|
||
知乎文档里有 `opencli zhihu download`,示例支持 `--download-images` 导出知乎文章为 Markdown 并下载图片。([GitHub][3])
|
||
微信公众号文档里有 `opencli weixin download --url ... --download-images`,输出包含 Markdown frontmatter 和 images 目录。([GitHub][4])
|
||
|
||
小红书这边,它更偏“下载 note 内容 / 图片 / 视频”,文档里有 `opencli xiaohongshu note` 读取完整笔记内容,有 `opencli xiaohongshu download` 下载图片和视频,但要注意它还提示很多小红书场景需要带 `xsec_token` 的完整 URL,裸 note ID 不可靠。([GitHub][5])
|
||
|
||
X 这边,OpenCLI 有 `twitter thread`、`twitter article`、`twitter download` 等命令,其中 `download` 明确是下载 profile 媒体或单条 tweet 媒体;如果你的目标是“线程正文 + 图片 → Markdown”,可能需要组合 `thread/article + download`,或者交给一个 wrapper Skill 做整合。([GitHub][6])
|
||
|
||
## 环境适配
|
||
|
||
对你的 Windows 本地环境很友好:你有 Node.js 常用环境,且无 Docker / 无 WSL;OpenCLI 要求 Node.js >= 20,通过 `npm install -g @jackwener/opencli` 安装,并需要 Chrome/Chromium Browser Bridge 扩展。([GitHub][1]) 这比 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][7])
|
||
|
||
它的工作方式是:
|
||
|
||
1. 用 Playwright 打开页面;
|
||
2. 滚动触发懒加载图片;
|
||
3. 抽取标题、作者、日期等元数据;
|
||
4. 清理广告和非正文区域;
|
||
5. 下载图片到本地 images 目录;
|
||
6. HTML 转 Markdown;
|
||
7. 写入带 frontmatter 的 `.md` 文件。([GitHub][7])
|
||
|
||
这套逻辑非常接近你想要的“URL → md + images”。
|
||
|
||
## 但问题也很明显
|
||
|
||
它现在只有 0 stars、0 forks、2 commits、无 release。([GitHub][7])
|
||
所以我不会建议你把它当成熟工具长期依赖。更合理的定位是:
|
||
|
||
**可以收藏、试跑、借鉴 Skill 结构,但不建议直接当主力。**
|
||
|
||
它要求 Python 3.9+ 和 Google Chrome。([GitHub][7]) 这对你的 Windows 本地没问题;但 Playwright / Chrome 自动化在不同网页上失败概率不低,尤其是公众号、小红书、X 这种强平台页面。
|
||
|
||
---
|
||
|
||
# 3. 微信公众号专用:wechat-article-to-markdown
|
||
|
||
## 一句话判断
|
||
|
||
**如果你的公众号文章保存需求很高,这个比通用工具更值得单独试。**
|
||
|
||
`jackwener/wechat-article-to-markdown` 明确支持:
|
||
|
||
* 抓取微信公众号文章;
|
||
* 提取标题、账号名、发布时间、来源 URL;
|
||
* 转 Markdown;
|
||
* 下载图片到本地 `images/` 并重写链接;
|
||
* 处理微信代码块。([GitHub][8])
|
||
|
||
安装方式也比较友好:推荐 `uv tool install wechat-article-to-markdown`,也支持 `pipx install`。([GitHub][8])
|
||
输出结构正好是 `<article-title>.md + images/`。([GitHub][8])
|
||
|
||
## 对你的价值
|
||
|
||
**公众号方向:值得本地试跑。**
|
||
|
||
它比 web2md 更聚焦,输出结构也符合知识库归档。主要风险是它使用 Camoufox 做 anti-detection fetching,这意味着依赖浏览器自动化/反检测能力,后续微信页面结构或风控策略变化时可能失效。([GitHub][8])
|
||
|
||
---
|
||
|
||
# 4. 小红书专用方案
|
||
|
||
小红书比公众号和知乎更麻烦,因为很多“有价值内容”其实在图片里,不只是 HTML 正文。
|
||
|
||
我检索到几个方向:
|
||
|
||
## A. OpenCLI 小红书 adapter
|
||
|
||
OpenCLI 支持 `xiaohongshu note` 读取笔记正文、作者、描述、点赞、收藏、评论、标签,也支持 `xiaohongshu download` 下载图片和视频。([GitHub][5])
|
||
|
||
这是我建议你优先试的方案。
|
||
|
||
## B. xhs-note-to-md
|
||
|
||
`DrErwin/xhs-note-to-md` 明确是“小红书帖子转 Markdown 文档”,支持正文、图片、OCR、评论区,并且说明适合把小红书知识帖、长图笔记、截图文章整理成本地文档。([GitHub][9])
|
||
|
||
但它依赖 `xiaohongshu-skills`、浏览器插件桥接、小红书账号登录,以及至少一个 OCR 引擎。([GitHub][9])
|
||
这说明它更像“Codex Skill 拼装工作流”,不是一个独立成熟 CLI。
|
||
|
||
对你来说:**可以作为 Skill 候选,但建议先交给 Codex/Claude Code 体检,不建议直接盲装。**
|
||
|
||
## C. xiaohongshu-importer
|
||
|
||
这是 Obsidian 插件,能从小红书分享链接导入标题、正文、图片、视频和标签,并可选择把媒体下载到 Obsidian vault。([GitHub][10])
|
||
|
||
如果你最终目标是 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][6])
|
||
|
||
但我没有看到它直接承诺“一条 X 链接 → Markdown + 图片完整归档”。所以它更像底层能力,而不是成品归档工具。
|
||
|
||
## B. baoyu-danger-x-to-markdown
|
||
|
||
这个是一个 X to Markdown Skill,描述里说可以把 tweets / threads 转 Markdown,也能提取 X Articles,并生成 YAML frontmatter。([LobeHub][11])
|
||
|
||
但它自己也强调使用 reverse-engineered X API,并且需要用户同意后才继续。([LobeHub][11])
|
||
这类工具我会谨慎放入长期系统:能用,但容易因为 X 改接口而失效,也存在账号风控和合规风险。
|
||
|
||
---
|
||
|
||
# 6. 通用网页兜底:MarkDownload
|
||
|
||
MarkDownload 是浏览器扩展,可以把网页剪藏成可读 Markdown,并支持 Chrome、Firefox、Edge、Safari。([GitHub][12])
|
||
|
||
优点是成熟度高,GitHub 上约 3.9k stars,浏览器插件形态也适合人工快速保存。([GitHub][12])
|
||
|
||
但它自己也提醒“不保证所有网站都能工作”。([GitHub][12])
|
||
对你这个诉求,它适合做:
|
||
|
||
**人工兜底工具,不适合做自动化主力。**
|
||
|
||
尤其小红书、X、公众号这类登录态/动态加载/反爬较多的平台,不应该指望普通 Readability + Turndown 一把梭。
|
||
|
||
---
|
||
|
||
# 7. 推荐路线
|
||
|
||
## 我建议你不要造完整爬虫
|
||
|
||
你真正该做的是一个很薄的 **URL Router Skill**:
|
||
|
||
```text
|
||
输入: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][1])
|
||
|
||
## 次动作
|
||
|
||
把 `wechat-article-to-markdown` 作为公众号专用兜底工具。
|
||
公众号文章的保存需求如果频繁,这个项目更直接,输出目录也很符合你的 Markdown 知识库归档需求。([GitHub][8])
|
||
|
||
## 不建议做的事
|
||
|
||
不要一开始就自己写:
|
||
|
||
* 小红书解析器;
|
||
* X GraphQL 解析器;
|
||
* 微信图片防盗链下载器;
|
||
* 通用反爬浏览器自动化框架。
|
||
|
||
这些都是维护黑洞。你要做的是**整合层 Skill**,不是平台爬虫内核。
|
||
|
||
---
|
||
|
||
# 10. 最小试跑路径
|
||
|
||
你可以先按这个顺序试:
|
||
|
||
```bash
|
||
# 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:
|
||
|
||
```text
|
||
给定任意 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。
|
||
|
||
[1]: https://github.com/partme-ai/opencli/blob/main/README.md "opencli/README.md at main · partme-ai/opencli · GitHub"
|
||
[2]: https://opencli.info/docs/advanced/download.html "Download Support | OpenCLI"
|
||
[3]: https://github.com/partme-ai/opencli/blob/main/docs/adapters/browser/zhihu.md "opencli/docs/adapters/browser/zhihu.md at main · partme-ai/opencli · GitHub"
|
||
[4]: https://github.com/partme-ai/opencli/blob/main/docs/adapters/browser/weixin.md "opencli/docs/adapters/browser/weixin.md at main · partme-ai/opencli · GitHub"
|
||
[5]: https://github.com/partme-ai/opencli/blob/main/docs/adapters/browser/xiaohongshu.md "opencli/docs/adapters/browser/xiaohongshu.md at main · partme-ai/opencli · GitHub"
|
||
[6]: https://github.com/partme-ai/opencli/blob/main/docs/adapters/browser/twitter.md "opencli/docs/adapters/browser/twitter.md at main · partme-ai/opencli · GitHub"
|
||
[7]: https://github.com/AllenZenghuge/web2md "GitHub - AllenZenghuge/web2md: 微信公众号/网页转 Markdown skill,自动下载图片、生成 frontmatter · GitHub"
|
||
[8]: https://github.com/jackwener/wechat-article-to-markdown "GitHub - jackwener/wechat-article-to-markdown: 微信公众号文章抓取 & Markdown 转换工具 · GitHub"
|
||
[9]: https://github.com/DrErwin/xhs-note-to-md "GitHub - DrErwin/xhs-note-to-md: `xhs-note-to-md` 用于把小红书帖子转换成 Markdown 文档。 它依赖 `xiaohongshu-skills` 获取帖子内容,也可以配合 OCR 识别图片里的文字。适合把小红书知识帖、长图笔记、截图文章整理成本地文档。 · GitHub"
|
||
[10]: https://github.com/bnchiang96/xiaohongshu-importer "GitHub - bnchiang96/xiaohongshu-importer: An Obsidian plugin to import Xiaohongshu (小红书) notes into your vault. Extract titles, content, images, videos, and tags from share links, with customizable categories and optional local media downloads. · GitHub"
|
||
[11]: https://lobehub.com/skills/jimliu-baoyu-skills-baoyu-danger-x-to-markdown "baoyu-danger-x-to-markdown | Skills ... · LobeHub"
|
||
[12]: https://github.com/deathau/markdownload "GitHub - deathau/markdownload: A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. · GitHub"
|
||
|