knowledge-vault/discussions/agents/GitHub助手GPT/2026-06-27-知乎、x文章.md

328 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 / 无 WSLOpenCLI 要求 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 >= 20Chrome/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"