关于 Zhihu
Zhihu 是面向终端用户和自动化流程的非官方命令行工具包,可浏览、搜索、下载、发布和分析知乎内容,并支持多账号管理。README 提及可选安装 zhihu-mcp 服务入口。
主要功能
- 01浏览动态、热榜、问题与评论
- 02搜索并下载内容为 Markdown
- 03发布和编辑文章及回答
- 04互动、管理收藏与私信
- 05导出数据并分析创作者收入和内容
- 06保存并切换多个账号配置
适用场景
- 01在终端检索并离线阅读知乎内容
- 02从 Markdown 文件发布或更新文章
- 03批量导出个人内容与活动数据
- 04分析收入及下载内容的文本特征
MCP 相关
README 提及可选安装项 [mcp],其中包含 zhihu-mcp 服务入口;未说明其向 MCP 客户端暴露的具体能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🧢 zhihu-cli
终端就是你的全新知乎总部。
功能完备、适合自动化的知乎 CLI 与开发者工具包。
browse · download · search · publish · analyze — all from the command line.
zhihu-cli 将你的终端变成一个功能齐全的知乎客户端。只需认证一次,即可浏览、搜索、下载、发布和分析,全程无需打开浏览器。
⚠️ 这是知乎的非官方 CLI。使用风险自负。与知乎公司无关。
👉 在寻找 DSH 插件?→ dsh-plugin/
🚀 快速开始
要求: Python 3.10 或更高版本。安装前使用
python --version检查版本。
# Install
pip install zhihu-toolkit
1. 认证
zhihu auth paste # paste a cURL from browser DevTools
zhihu auth login # scan a QR code with the Zhihu App
zhihu auth import # import the session from a local browser (needs: pip install 'zhihu-toolkit[browser]')
2. 验证
zhihu auth status # check login status and active profile
✨ 你可以做什么
📖 阅读与浏览
浏览知乎的动态、热榜、问题、文章、想法和评论,所有内容都会通过 Rich 驱动的分页器呈现在终端中。查看带摘要的实时热榜,滚动浏览为你个性化推荐的内容,或深入查看问题及其完整回答串,全程无需点击任何链接。知乎日报有独立的命令组:zhihu daily latest、zhihu daily before <date> 和 zhihu daily story <id> --save。
💾 下载以供离线使用
将任何知乎内容(文章、回答、问题、想法、视频)保存为带 YAML frontmatter 的简洁 Markdown。可下载单条内容,也可根据清单批量处理。所有内容都会按类型整理,保存到 ~/.zhihu-cli/downloads/,方便导入笔记系统或离线阅读。
🔍 搜索
在知乎上搜索问题、文章、用户和话题。可从命令行调整结果深度和数量。
✍️ 发布与编辑
使用 Markdown 撰写回答和文章,然后通过一条命令发布到知乎。需要更新时,可从本地文件修改已有回答和文章。Markdown 到 HTML 的转换会通过知乎自己的渲染流程自动完成。
💬 互动
投票、致谢、关注、拉黑和评论,无需浏览器即可进行完整的社交互动。管理收藏夹:创建、添加内容并整理。发送和接收私信,还可通过 MQTT 实时接收通知和聊天消息。
🕸️ 抓取与导出
将你发布的内容、活动历史、回答和文章批量导出为结构化 JSON。使用通用转换器跨格式合并并规范化数据,以用于自己的数据流水线。
📊 分析
创作者数据分析——获取知乎收入数据并进行可视化:月度摘要、趋势图(含 EMA)、高级指标(布林带、MACD)、导数分析(速度/加速度/加加速度)、星期几统计,以及按内容细分的每日指标。图表会保存为 PNG 文件。
NLP 工具——对下载的内容进行词频分析、生成词云和 K-means 聚类。所有工具均可处理完整的 Markdown 内容库。
🔐 多账号
保存不同账号的多个配置,并通过一条命令在配置间切换。每个配置都有独立的认证凭据和 Cookie。
🏗️ 架构
src/zhihu_cli/
├── main.py # Click CLI — command group hub
├── output.py # styled terminal output (Rich)
├── content/
│ ├── handlers/ # one file per Zhihu domain
│ └── utils/ # HTML↔Markdown, ZSE v4 signing
├── creator_tools/ # income analytics + plotting
├── nlp_tools/ # word count, wordcloud, clustering
└── extensions/ # plugin system (auto-discovered)
| 层 | 功能 |
|---|---|
| 🔐 身份验证 | 通过粘贴 cURL 内容或扫描二维码登录,获取浏览器 Cookie 和 User-Agent 请求头,并按配置文件缓存 |
| ✍️ 签名 | 通过 ZSE v4 加密算法,自动为每个知乎请求添加 x-zse-93 / x-zse-96 请求头 |
| 🌐 请求 | curl_cffi 模拟 Chrome 的 TLS 指纹以避免被检测 |
| 📄 内容提取 | 优先直接调用 API;失败时则抓取 HTML 页面并解析 js-initialData |
| 📝 Markdown | HTML → LaTeX 预处理 → 递归遍历 → 清理后的 Markdown。发布时反向转换 |
| 🔌 扩展 | 在 extensions/ 中放入包含 register_cli(group) 的插件,启动时会自动发现 |
🧪 额外功能
可选依赖项
pip install -e ".[nlp]" # jieba, matplotlib, wordcloud, scikit-learn...
pip install -e ".[creator]" # matplotlib, numpy, pandas, seaborn...
pip install -e ".[classifier]" # torch, transformers, scikit-learn...
pip install -e ".[llm]" # openai (zhihu agora ai, zhihu chat bot, crank)
pip install -e ".[notify]" # desktop-notifier (zhihu chat interactive --notify)
pip install -e ".[mcp]" # mcp (the zhihu-mcp server entry point)
Shell 补全
eval "$(python autocomp.py)"
🤝 参与贡献
欢迎提交 PR!代码库的结构便于扩展:
- 新增命令? 在
commands/中添加一个文件,其中包含register_<name>(group)函数,并在main.py中导入。 - 新增处理器? 在
content/handlers/中添加一个文件,并遵循现有模式。 - 新增扩展? 创建
extensions/<name>/,并添加一个公开register_cli(group)的__init__.py。
提交前请运行格式化工具:
pre-commit run --all-files
ruff check .
ruff format .
📜 许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。