Zhihu Auto Publisher — 知乎自动发布助手
在知乎上自动完成回答和文章的草稿保存,全程模拟人工键盘鼠标操作。
只保存草稿,不发布。 用户手动审核后自行决定是否发布。
兼容浏览器
| 浏览器 | 类型 | 说明 |
|---|---|---|
| Google Chrome | 系统安装 | 自动检测,优先使用 |
| Microsoft Edge | 系统安装 | 自动检测 |
| Mozilla Firefox | 系统安装 | 自动检测 |
| Chromium | Playwright 内置 | 兜底浏览器(无需系统安装) |
> 自动选择逻辑:系统默认浏览器 > Chrome > Edge > Firefox > Chromium
>
> 可通过环境变量指定:set ZHIHU_BROWSER=firefox
运行环境
首次使用前运行安装脚本:
python scripts/setup.py
安装过程:
1. 安装 playwright Python 包
2. 下载 Chromium + Firefox(Playwright 内置)
3. 自动检测系统已安装的 Chrome / Edge / Firefox
4. 创建所需目录
推荐使用专用 venv(已预装依赖):
- 或任何安装了 playwright + chromium 的 Python 3.10+ 环境
工作原则
- 使用 Playwright 控制浏览器,模拟真实人工操作(随机延迟、逐字输入、鼠标移动)。
- 所有发布操作只到"保存草稿"为止,绝不点击发布/提交按钮。
- Cookie 优先从"知乎内容选题助手"共享的
config/fallback-sources.json获取;若不存在或过期,引导用户重新登录获取。 - 发布内容由用户提供(文件路径或直接文本),不自行生成。
- 操作过程中每一步都截图反馈,让用户清楚看到进度。
一、Cookie 管理
1.1 Cookie 获取优先级
- 共享 Cookie:读取
~/.workbuddy/skills/zhihu-content-selection/config/fallback-sources.json中的cookie字段 - 自动提取:运行
python scripts/cookie_manager.py extract从 Chrome/Edge 浏览器配置文件中自动提取 - 手动粘贴:引导用户从浏览器 DevTools 复制 Cookie
1.2 Cookie 检测与引导流程
执行发布操作前,必须检测 Cookie 是否有效:
python scripts/check_login.py
如果检测到未登录或 Cookie 过期:
- 告诉用户:"请先在 Chrome 或 Edge 浏览器中打开 https://www.zhihu.com 并扫码登录"
- 等待用户确认登录完成
- 运行
python scripts/cookie_manager.py extract自动提取 Cookie - 如果自动提取失败,引导用户手动复制:
> 1. 在知乎页面按 F12 打开开发者工具
> 2. 点击 Network(网络) 标签
> 3. 按 F5 刷新页面
> 4. 点一个api.zhihu.com开头的请求
> 5. 右侧 Request Headers → 找到Cookie:行
> 6. 双击 Cookie 值 → Ctrl+A → Ctrl+C
> 7. 把复制的 Cookie 发给我 - 收到 Cookie 后运行
python scripts/cookie_manager.py save "<cookie>"保存
1.3 Cookie 共享
保存成功后,自动同步到"知乎内容选题助手"的配置:
python scripts/cookie_manager.py share
二、回答发布流程
触发条件
用户提供问题链接(如 https://www.zhihu.com/question/1890153384096555048)和回答内容。
执行步骤
所有步骤通过 Playwright 完成,模拟人工操作:
1. 确认 Cookie 有效(运行 check_login.py)
2. 用 Playwright 打开问题链接
3. 等待页面加载完成
4. ★ 检测是否存在「编辑回答」按钮 → 如果存在,说明该问题已回答过,返回提示并退出
5. 定位并点击「写回答」按钮
6. 等待编辑器加载
7. 将内容逐段粘贴到编辑器中(模拟人工输入节奏)
8. 点击「保存草稿」按钮
9. 确认草稿保存成功
10. 截图反馈给用户
11. 告诉用户:"草稿已保存,请在浏览器中查看并决定是否发布"
已回答检测(v1.1.0)
发布前自动检测页面上是否存在「编辑回答」或「修改回答」按钮。
如果存在,说明该问题之前已经写过回答,不会再重复发布。
返回信息:
[INFO] 该问题之前已写回答,无需重复发布。
问题链接: https://www.zhihu.com/question/xxx
请前往链接手动编辑已有回答。
命令
python scripts/publish_answer.py \
--url "https://www.zhihu.com/question/1890153384096555048" \
--content "E:\path\to\answer.txt"
或者直接传入文本:
python scripts/publish_answer.py \
--url "https://www.zhihu.com/question/1890153384096555048" \
--text "这是回答内容..."
人工模拟细节
- 点击前鼠标先移动到按钮位置(模拟鼠标轨迹)
- 输入时逐段粘贴,段落间随机停顿 1-3 秒
- 不会一次性全选粘贴(避免触发反爬检测)
- 遇到弹窗/验证码时截图告知用户处理
三、文章发布流程
触发条件
用户要求发布知乎文章,需提供标题和正文内容。
执行步骤
1. 确认 Cookie 有效
2. 用 Playwright 打开 https://www.zhihu.com/
3. 确认页面已登录(检查头像/昵称元素)
4. 定位并点击「写文章」按钮
5. 等待文章编辑器加载
6. 在标题区域输入标题
7. 在正文区域逐段粘贴内容
8. 等待内容渲染完成
9. 点击「保存草稿」
10. 确认保存成功
11. 截图反馈
12. 告诉用户草稿已保存
命令
python scripts/publish_article.py \
--title "文章标题" \
--content "E:\path\to\article.txt"
四、与"知乎内容选题助手"联动
4.1 Cookie 共享
两个技能使用同一份 Cookie 配置:
- 存储位置:~/.workbuddy/skills/zhihu-content-selection/config/fallback-sources.json
- 本技能的 cookie_manager.py share 命令会将 Cookie 写入该位置
- "知乎内容选题助手"的 auto_cookie.js 提取的 Cookie 也存同一位置
- 任一方获取的 Cookie 另一方都能直接使用
4.2 问题链接传递
"知乎内容选题助手"数据库中 questions 表的 url 字段可直接作为本技能的回答发布链接:
# 从选题助手获取问题链接
python ~/.workbuddy/skills/zhihu-content-selection/scripts/query.py questions recommend --limit 5
# 将链接传给自动发布
python scripts/publish_answer.py --url "<获得的链接>" --content "content.txt"
工作流示例:
1. 用"知乎内容选题助手"选取热点问题
2. 在本地写好回答草稿
3. 用本技能自动发布到知乎草稿箱
4. 登录知乎查看草稿,决定是否发布
五、错误处理
| 错误 | 处理方式 |
|---|---|
| Cookie 过期 / 未登录 | 引导用户重新登录,重新提取 Cookie |
| 找不到「写回答」按钮 | 截图发给用户确认页面状态 |
| 编辑器加载超时 | 等待最多 30 秒,超时后截图告知 |
| 保存草稿失败 | 检查是否有"草稿已保存"提示,截图告知 |
| 验证码 / 滑块 | 截图告知用户,等待用户手动处理后继续 |
| 弹窗遮挡 | 尝试关闭弹窗,失败则截图告知 |
| 网络超时 | 重试一次,仍失败则停止 |
六、文件结构
zhihu-auto-publisher/
├── SKILL.md # 本文档
├── scripts/
│ ├── setup.py # 环境安装(首次使用)
│ ├── cookie_manager.py # Cookie 提取、保存、共享
│ ├── check_login.py # 登录状态检测
│ ├── publish_answer.py # 回答发布脚本
│ ├── publish_article.py # 文章发布脚本
│ └── browser_utils.py # Playwright 浏览器工具函数
├── config/
│ └── settings.json # 本技能配置(Cookie 路径等)
├── drafts/ # 本地草稿备份
└── references/
└── setup.md # 详细安装说明
七、安全原则
- 只保存草稿,不发布 — 所有操作终点是"保存草稿"按钮
- Cookie 仅本地存储 — 不上传到任何远程服务器
- 内容由用户提供 — 不自行生成或修改发布内容
- 操作过程全透明 — 每步截图反馈
- 合法合规 — 拒绝发布违法违规内容
八、版本历史
| 版本 | 日期 | 变更 |
|---|---|---|
| 1.1.0 | 2026-06-29 | 新增已回答检测:发布前检查页面上是否存在「编辑回答」按钮,如已回答过则跳过并返回链接 |
| 1.0.0 | 2026-06-29 | 首次发布:Cookie 管理、回答发布、文章发布、Chrome/Edge/Firefox 三浏览器兼容 |