通过 forked camoufox-cli 持久化 session zhihu 在知乎发布文章或回答。知乎无可用公开 API,需通过浏览器操作完成发布。
60
71%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./crews/main/skills/zhihu-publish/SKILL.md通过 camoufox-cli 持久化 session zhihu(一个且只有一个持久化 session,fail-first 队列:同 session 已有命令在跑时新命令直接 fail)在知乎上发布文章或回答。知乎没有对个人开发者开放的发布 API,只能通过浏览器自动化。
主力后端 =
target=camoufox。下方命令 / 示例只针对target=camoufox。target=host/target=node:只按本 skill 的「流程 + 提示事项」走——何时有头 / 何时无头 / 频率限制 / 错误处理约定是后端无关的,照本 skill 执行。不要照搬camoufox-cli ...命令,用你当前后端自带的浏览器工具语义调用即可。
zhihu 已登录(登录态存 session profile 里)。本 skill 与 login-manager 完全无关——自管探活 + 登录,不导出 cookie/UA 落中央存储。camoufox-cli --session zhihu --persistent --headed --json open "https://www.zhihu.com"snapshot 零登录态就位--session zhihu --persistent 重起无头即恢复,用完再 close。不导出 cookie/UA——登录态只在 session profile 里闭环,不落
~/.openclaw/logins/。本 skill 不调用cookies export/identity export。
1. 启持久化 session + 打开创作页:
camoufox-cli --session zhihu --persistent --json open "https://zhuanlan.zhihu.com/write"
2. sleep 3-5 加载编辑器,snapshot 确认 .WriteIndex-page 或 .PostEditor 出现
3. snapshot 拿到标题输入框 ref:input[placeholder*="标题"] 或 .WriteIndex-titleInput input
4. camoufox-cli --session zhihu --persistent --json type <标题-ref> "文章标题"
- 最长 100 字符
5. snapshot 拿到正文编辑器 ref:.ProseMirror 或 .public-DraftEditor-root 或 [contenteditable="true"]
6. camoufox-cli --session zhihu --persistent --json click <正文-ref> 聚焦编辑器
7. camoufox-cli --session zhihu --persistent --json type <正文-ref> "正文内容"
- 知乎使用富文本编辑器(ProseMirror / Draft.js),不支持直接输入 Markdown
- Markdown 内容需先转换为纯文本或手动分段输入
8. (可选)添加话题:snapshot 找"添加话题"按钮 ref → click → type 话题名称 → 从下拉选
9. snapshot 找"发布"按钮 ref → camoufox-cli --session zhihu --persistent --json click <发布-ref>
10. sleep 3,snapshot 确认发布成功(URL 变为文章详情页)知乎编辑器支持:标题(H1/H2)/ 粗体 / 斜体 / 链接 / 图片(需先上传)/ 代码块 / 引用 / 有序无序列表。不支持直接输入 Markdown——需通过编辑器工具栏或快捷键操作。
1. 启持久化 session + 打开问题页:
camoufox-cli --session zhihu --persistent --json open "https://www.zhihu.com/question/{question_id}"
2. sleep 3-5 加载
3. snapshot 找"写回答"按钮 ref:button.Button--blue 或文本为"写回答"的按钮
4. camoufox-cli --session zhihu --persistent --json click <写回答-ref>
5. sleep 等编辑器出现,snapshot 拿到编辑器 ref
6. 填写回答内容(同文章正文步骤 6-7)
7. snapshot 找"发布"按钮 ref → click
8. sleep 3,snapshot 确认知乎编辑器插入图片需先上传:
1. snapshot 找编辑器工具栏的"图片"按钮 ref → click 触发文件选择
2. snapshot 拿到弹出的 <input type="file"> ref
3. camoufox-cli --session zhihu --persistent --json upload <图片-input-ref> <image.jpg>
- forked cli upload 命令底层走 Playwright setInputFiles,无需 CDP setFileInput hack
4. sleep 等待上传完成(snapshot 看图片出现在编辑器)zhihu——登录态 + 指纹冻结在磁盘 profile,不留进程占内存;下次发布 --session zhihu --persistent 重起无头即恢复。只在 session 卡死时 camoufox-cli --session zhihu --json close teardown。session zhihu 正忙,请等待当前操作完成后再试)——读到这条文本就等当前操作完成再重试,不要盲试。.ProseMirror 选择器找不到编辑器.public-DraftEditor-root 或 [contenteditable="true"]你 等编码| 情况 | 处理 |
|---|---|
| 未登录 / 登录墙 | 走前置条件的有头手动登录流,重试一次 |
| 编辑器未加载 | 等待 5 秒后重试,检查选择器 |
| 发布按钮灰色 | 检查标题/正文是否已填写 |
| 验证码 / 频率限制 | 等待 60 秒后重试 |
| session 正忙(fail-first) | 等当前操作完成再重试,不要盲试 |
必须调用 published-track 技能记录本次发布。
bcef823
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.