Zhihu Collections MCP
将知乎收藏夹(公开和私密)批量导出为 Markdown 格式文件. 支持配置收藏夹列表并批量下载, 支持基于URL自动去重, 支持下载专栏和图片, 支持自定义保存路径, 支持调试和错误日志. **同时提供 MCP Server**,可被 AI Agent (如 Claude Code) 直接调用,为大模型提供保存知乎收藏夹的能力。
Ask AI about Zhihu Collections MCP
Powered by Claude · Grounded in docs
I know everything about Zhihu Collections MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Export-Zhihu-Collections
项目介绍
一个功能强大的知乎收藏夹导出工具,支持将知乎收藏夹(公开和私密)批量导出为 Markdown 格式文件。支持自定义输出路径、跨平台兼容、图片下载和 Obsidian 兼容格式。支持使用大模型API一键生成文章总结。
同时提供 MCP Server,可被 AI Agent (如 Claude Code) 直接调用,为大模型提供保存知乎收藏夹的能力。
主要特性
- 📚 批量处理: 支持同时处理多个收藏夹
- 📂 自定义输出: 支持用户指定输出目录
- 🖥️ 跨平台兼容: 支持 Windows、Linux、macOS 等系统
- ✨ 智能去重: 自动检查已存在文件,避免重复下载
- 🖼️ 图片下载: 自动下载并保存文章中的图片
- 📝 Obsidian 兼容: 输出的 Markdown 格式完全兼容 Obsidian
- 📈 实时日志: 支持实时日志刷新,立即显示处理进度
- 🔍 自动收藏夹获取: 通过独立脚本自动获取用户收藏夹列表
- 🛠️ 健壮错误处理: 单个文章失败不影响整体处理流程
- 🔧 增强调试支持: 自动生成调试文件,便于问题排查
- 🤖 MCP 支持: 提供 MCP Server,可被 AI Agent 调用
两种运行方式
方式一:命令行运行(传统方式)
适合直接在终端运行导出任务。
安装
pip install -r requirements.txt
配置文件设置
首先创建主配置文件:
# 复制配置示例文件
cp config_examples.json config.json
编辑 config.json 文件,配置你的收藏夹信息:
{
"zhihuUrls": [
{
"name": "收藏夹名称",
"url": "https://www.zhihu.com/collection/123456789"
},
{
"name": "另一个收藏夹",
"url": "https://www.zhihu.com/collection/987654321"
}
],
"outputPath": "/path/to/your/output/directory",
"os": "linux"
}
其中zhihuUrls的获取可看 
自动获取收藏夹(可选)
如果你想自动获取所有收藏夹,可以先运行:
python fetch_collections.py
这将自动更新 config.json 文件中的收藏夹列表。
运行主程序
python main.py
方式二:MCP Server 运行(AI Agent 方式)
适合被 Claude Code 或其他 AI 工具集成调用。
安装 MCP 依赖
# 安装MCP包
pip install mcp
启动 MCP Server
python mcp_server.py
Server 会通过 stdio 通信,可以在 Claude Code 或其他 MCP 客户端中使用。
可用工具
| 工具名 | 说明 |
|---|---|
list_collections | 列出配置文件中所有知乎收藏夹 |
export_collection | 导出指定知乎收藏夹为Markdown文件 |
get_collection_info | 获取指定收藏夹的基本信息(文章数量等) |
search_collections | 在配置文件中搜索包含关键词的收藏夹 |
list_collections
# 返回格式化的收藏夹列表
export_collection
参数:
collection_url(必需): 收藏夹URLcollection_name(可选): 收藏夹名称output_dir(可选): 输出目录
# 示例
export_collection(
collection_url="https://www.zhihu.com/collection/123456789",
collection_name="Python学习",
output_dir="my_downloads"
)
get_collection_info
参数:
collection_url(必需): 收藏夹URL
search_collections
参数:
keyword(必需): 搜索关键词
在 Claude Code 中使用
在项目根目录的 CLAUDE.md 或用户配置文件中的 MCP 配置段添加服务器配置:
{
"mcpServers": {
"zhihu-collections": {
"command": "python",
"args": ["mcp_server.py"],
"env": {},
"cwd": "你的项目路径"
}
}
}
然后就可以用自然语言调用:
- "列出我的知乎收藏夹"
- "导出收藏夹 https://www.zhihu.com/collection/123456789"
- "搜索包含Python的收藏夹"
- "获取收藏夹 https://www.zhihu.com/collection/123456789 的文章数量"
配置选项说明
基本配置
- zhihuUrls: 收藏夹列表,每个收藏夹包含名称和 URL
- outputPath: 自定义输出路径(可选,留空使用默认路径)
- os: 操作系统类型(可选,留空自动检测)
支持的操作系统和路径格式
- Windows:
"D:\\Documents\\ZhihuExports"或"D:/Documents/ZhihuExports" - Linux/Unix:
"/usr/local/share/zhihu-exports" - macOS:
"~/Documents/ZhihuExports" - Cygwin:
"/cygdrive/d/Documents/ZhihuExports"
私密收藏夹访问
对于私密收藏夹,需要创建 cookies.json 文件:
[
{"name": "cookie_name", "value": "cookie_value"},
{"name": "another_cookie", "value": "another_value"}
]
输出结果
文件结构
输出目录/
├── 收藏夹名称1/
│ ├── 文章1.md
│ ├── 文章2.md
│ └── assets/
│ ├── image1.jpg
│ └── image2.png
├── 收藏夹名称2/
├── logs/
│ ├── debug_20240101_120000.log
│ └── 20240101_120000.json
└── debug/
├── debug_answer_123456.html
└── debug_post_789012.html
默认输出位置
- 默认路径: 项目目录下的
downloads/文件夹 - 自定义路径: 在
config.json中指定outputPath - 图片存储: 每个收藏夹目录下的
assets/文件夹 - 日志文件: 输出目录下的
logs/文件夹 - 调试文件: 输出目录下的
debug/文件夹(保存无法解析的页面HTML)
故障排除
常见问题
-
内容下载失败
- 查看
downloads/debug/目录中的HTML文件分析页面结构 - 检查网络连接和cookies是否有效
- 确认文章URL是否可正常访问
- 查看
-
日志文件为空
- 程序已修复了日志实时刷新问题
- 如仍有问题,请检查输出目录的写入权限
-
TypeError: cannot unpack non-iterable NoneType object
- 该问题已在v2.1版本中修复
- 如仍遇到,请更新到最新版本
-
专栏文章返回"该文章链接被404"但浏览器能正常打开
- v2.1版本新增了智能内容检测和精准错误分析
- 检查debug目录中的HTML文件了解具体原因
- 可能需要更新cookies或页面结构发生变化
调试支持
- 日志文件:
downloads/logs/debug_*.log包含详细的处理信息 - 调试HTML:
downloads/debug/debug_*.html保存无法解析的页面 - 测试脚本:
test/目录包含各种功能测试脚本
BUG 反馈
若您在使用过程中遇到任何问题,请在 issue 中提供 BUG 信息。为了方便我复现并解决该问题,请务必附上问题报错的提示或者相关网址。
建议
若您有任何建议,欢迎在 issue 中发起讨论
更新日志
v2.3 反爬机制绕过
- 🔄 API 备用机制: 当 HTML 请求返回 403 时,自动调用知乎 API (
/api/v4/answers/{id}?include=content) 获取回答内容 - 📦 流式下载: 专栏文章使用流式下载,解决大文章(如图片多的长文)的网络中断问题
- 🔁 重试机制: 专栏文章添加 3 次重试,提高下载成功率
- 🔐 Headers 增强: 更新请求 Headers 以模拟现代浏览器,减少被反爬拦截的概率
v2.2 MCP 支持
- 🤖 MCP Server: 新增
mcp_server.py,支持被 AI Agent 直接调用 - 📋 4个工具: 提供 list_collections / export_collection / get_collection_info / search_collections 工具
- 🔌 标准协议: 遵循 MCP 协议,支持 Claude Code 等主流 AI 工具集成
v2.1 增强功能
- 🚀 实时日志系统: 支持实时日志刷新和立即显示处理进度
- 🛠️ 健壮错误处理: 修复了 TypeError 等关键错误,单个文章失败不影响整体处理
- 🔍 增强HTML解析: 支持多种知乎页面结构,提高内容获取成功率
- 🔧 调试文件生成: 自动保存无法解析的页面HTML到
debug/目录供分析 - 🔄 自动收藏夹获取: 新增
fetch_collections.py独立脚本自动获取收藏夹列表 - 📊 详细错误日志: 记录具体错误信息和堆栈跟踪,便于问题定位
- 🎯 智能内容检测: 当标准CSS选择器失效时,自动启用智能算法检测文章内容
- 🔍 精准错误分析: 区分404、登录要求、权限问题等不同错误类型
v2.0 新增功能
- ✨ 批量处理多个收藏夹
- ⚙️ 配置文件系统 (config.json)
- 📂 自定义输出路径支持
- 🖥️ 跨平台路径处理
- ✨ 智能文件去重功能
- 📈 详细处理日志系统
- 🔄 向后兼容旧版配置文件
Todo
- 优化抓取速度
- 增加更多导出格式支持
- GUI 界面开发
- 第三方大模型API支持
