首页/新闻资讯/正文详情

xiaobei 项目 zhihu-publish 技能实战指南:基于 camoufox-cli 持久化 Session 的知乎文章与回答发布自动化

发布时间:2026/9/27 8:54:27 来源:云帆数科 栏目:资讯中心
xiaobei 项目 zhihu-publish 技能实战指南:基于 camoufox-cli 持久化 Session 的知乎文章与回答发布自动化
人工智能AI Agent大模型AI 应用媒体生成【免费下载链接】xiaobei为OPC/中小微企业量身打造的自媒体获客智能体项目地址https://gitcode.com/gh_mirrors/wi/xiaobei点击查看免费下载zhihu-publish 是 xiaobei 项目中负责知乎平台内容发布的技能核心思路是由于知乎不向个人开发者开放发布 API只能通过浏览器自动化完成发布。本文完整讲解该技能的前置登录流程、发布文章与回答的完整操作序列、图片上传、创作声明设置、必做约束与错误处理并结合仓库内 forked camoufox-cli 的源码实现解释每个命令背后的底层机制帮助读者在 xiaobei 工作区内稳定、合规地落地知乎自动化发布。技能定位为什么知乎发布必须走浏览器自动化在 xiaobei 的内容矩阵中知乎与微信公众号、小红书、抖音等平台并列由 crews/main/BUILTIN_SKILLS 统一注册。与登录态集中管理不同知乎登录态由 zhihu-publish 技能自管不依赖 login-manager 技能——该技能只托管 douyin / bilibili / kuaishou / xhs-browse 四个平台的中央 cookieUA 存储。zhihu-publish 的登录态闭环在持久化 session profile 中不导出 cookie、不导出 UA、不落~/.openclaw/logins/因此也绝不调用cookies export/identity export。这种设计避免了将知乎的会话凭据与设备指纹分离带来的风控错配风险——同一指纹下的登录态只在浏览器 profile 内闭环使用。主力后端为targetcamoufox全部命令与示例均针对 forked camoufox-cli。若运行在targethost/targetnode后端则只遵循本技能描述的流程 提示事项何时有头、何时无头、频率限制、错误处理约定用当前后端自带的浏览器工具语义调用不照搬camoufox-cli ...命令。前置条件持久化 Session 与有头手动登录1. Session 登录态要求发布前必须满足持久化 sessionzhihu已登录登录态存放在 session profile磁盘目录中。xiaobei 中每个平台一个持久化 sessionsession 名即平台 key且一个且只有一个——同 session 已有命令在跑时新命令直接 failfail-first 队列后文详解。2. 首次使用 / 登录态失效时的登录流登录采用有头手动登录agent 只负责打开浏览器窗口用户负责扫码/输密码完成登录camoufox-cli --session zhihu --persistent --headed --json open https://www.zhihu.com随后告知用户「知乎浏览器已打开请在窗口里手动登录完成后告诉我」等待用户回复不要盲轮询。用户确认登录后执行snapshot确认零登录态即已进入登录后的页面状态。登录完成后立即close session——登录态落盘到磁盘 profile不留进程占内存下次本技能以--session zhihu --persistent重起无头即可恢复登录态用完再 close。从源码看--persistent默认路径为~/.camoufox-cli/profiles/session见 cli.ts 的 main 函数因此zhihu的登录态固定落在~/.camoufox-cli/profiles/zhihu/。daemon 空闲自退MAX_IDLE_TIMEOUT 60秒后 profile 目录依然存活这正是用完即 close、重起即恢复的底层依据见 server.ts。发布文章从打开创作页到确认发布成功发布文章的完整操作序列如下1. 启持久化 session 打开创作页 camoufox-cli --session zhihu --persistent --json open https://zhuanlan.zhihu.com/write 2. sleep 3-5 加载编辑器snapshot 确认 .WriteIndex-page 或 .PostEditor 出现 3. snapshot 拿到标题输入框 refinput[placeholder*标题] 或 .WriteIndex-titleInput input 4. camoufox-cli --session zhihu --persistent --json type 标题-ref 文章标题 - 最长 100 字符 5. snapshot 拿到正文编辑器 ref.ProseMirror 或 .public-DraftEditor-root 或 [contenteditabletrue] 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 3snapshot 确认发布成功URL 变为文章详情页其中type命令在 commands.ts 中实现为locator.pressSequentially(text)——按字符逐键输入适合富文本编辑器这种需要模拟真实键入的场景标题输入走type而非fill正是为了避免fill的清空行为影响输入框。每次命令前都需要snapshot刷新元素 refref 由 aria snapshot 构建元素结构变化后旧 ref 会失效。正文格式说明知乎编辑器支持标题H1/H2/ 粗体 / 斜体 / 链接 / 图片需先上传/ 代码块 / 引用 / 有序无序列表。不支持直接输入 Markdown——Markdown 标记会被原样显示需通过编辑器工具栏或快捷键操作完成格式化。发布回答覆盖写回答按钮定位、正文填写与创作声明操作序列1. 启持久化 session 打开问题页 camoufox-cli --session zhihu --persistent --json open https://www.zhihu.com/question/{question_id} 2. sleep 3-5 加载 3. 找写回答按钮并点击。两种方式 - snapshot 找 button ref文本为写回答后 camoufox-cli click ref - 若 click 卡死/无响应改用 eval 绕过 camoufox-cli --session zhihu --persistent --json eval var bArray.from(document.querySelectorAll(button)).find(function(x){return x.textContent.trim()写回答}); if(b){b.click();CLICKED}else{NOT_FOUND} 4. sleep 3-5 等编辑器出现snapshot 拿到编辑器 reftextbox 或 contenteditable 5. 填写回答内容见下方填写正文段 6. ⚠️ 发布前必做设置「创作声明」见下方创作声明段 7. snapshot 找发布回答按钮 ref - click 8. sleep 3确认发布成功URL 变为 /question/.../answer/... 详情页eval命令在 commands.ts 中实现为page.evaluate(expression)直接在当前页面执行 JavaScript。上面这段脚本用querySelectorAll(button)遍历全部按钮按textContent.trim()写回答精确匹配后调用原生element.click()返回CLICKED或NOT_FOUND便于 agent 判断执行结果。填写正文fill 命令与手动清空知乎回答编辑器是 Draft.js[contenteditabletrue]填写正文用fill命令camoufox-cli --session zhihu --persistent --json fill 编辑器-ref 正文纯文本⚠️fill 不会自动清空旧内容——如果编辑器已有内容如之前填过或导入了内容必须先清空camoufox-cli --session zhihu --persistent --json eval var edocument.querySelector([contenteditabletrue]);e.focus();document.execCommand(selectAll,false,null);document.execCommand(delete,false,null);CLEARED清空后再 fill否则两段内容会拼在一起。这一点与 fill 的源码实现一致——它直接调用 Playwright 的locator.fill(text)语义是输入文本到元素并不会先执行清空操作。导入公众号文章可选知乎编辑器工具栏有导入链接功能支持导入微信公众号文章snapshot 找导入按钮 - click - 切换到导入链接 tab在 textbox 中填入公众号文章 URL - 点开始导入导入可能失败知乎规范过滤含导流二维码、广告外链、违禁词等会拦截内容重复/敏感词会导入失败导入失败时改用直接 fill 正文的方式创作声明发布前必做⚠️发布回答前必须设置创作声明否则需要发布后重新编辑补设。编辑器底部有「发布设置」区域其中包含「创作声明」下拉框combobox默认值为无声明。对于AI 辅助创作的内容必须选择包含 AI 辅助创作 作者对内容负责1. snapshot 找「创作声明」combobox ref 2. click 展开 combobox - snapshot 找 option 包含 AI 辅助创作 作者对内容负责 - click 该 option 3. 确认 combobox 文本变为包含 AI 辅助创作 作者对内容负责可选值无声明 / 包含剧透 / 包含医疗建议 / 虚构创作 / 包含理财内容 / 包含 AI 辅助创作 作者对内容负责。编辑已发布的回答若发布时遗漏了创作声明可通过编辑补设打开回答详情页找编辑回答按钮 - click编辑器打开后滚动到底部找「创作声明」combobox设置声明后找提交修改按钮 - clicksleep 3 确认保存成功图片上传upload 命令与 setInputFiles 底层原理知乎编辑器插入图片需先上传1. snapshot 找编辑器工具栏的图片按钮 ref - click 触发文件选择 2. snapshot 拿到弹出的 input typefile ref 3. camoufox-cli --session zhihu --persistent --json upload 图片-input-ref image.jpg - forked cli upload 命令底层走 Playwright setInputFiles无需 CDP setFileInput hack 4. sleep 等待上传完成snapshot 看图片出现在编辑器upload是 xiaobei 对上游 camoufox-cli 0.6.2 的三项 fork 新增之一详见 patches/camoufox-cli/README.md上游本身没有任何文件上传能力。其实现见 commands.ts 的 cmdUpload接受 snapshot refe1或原始 CSS selector变长参数支持一次传多个文件并先对每个路径做existsSync预检——文件缺失时在触碰浏览器之前就 fail fast 返回File not found: p。底层走locator.setInputFiles(paths)完全绕开需要 CDP 协议的setFileInputhack。必做约束close、fail-first 与频率控制用完即 close 持久化 sessionzhihu登录态 指纹冻结在磁盘 profile不留进程占内存下次发布--session zhihu --persistent重起无头即恢复。只在 session 卡死时camoufox-cli --session zhihu --json closeteardown。同 session 已有命令在跑时新命令 fail-first返回session zhihu 正忙请等待当前操作完成后再试——读到这条文本就等当前操作完成再重试不要盲试。每次发布间隔 60 秒以上避免触发反垃圾。fail-first 队列是 fork 的第二项新增其实现位于 server.ts 的 handleConnectionsession 级别的 daemon 一次只执行一条命令busy标志置位期间除close外的任何命令立即返回上面的中文错误文本不做隐式排队、不自动等待由 agent 读取错误后自行决定重试时机。close绕过队列server.ts保证卡死的 session 永远可以被强制 teardown客户端close --all兜底。设计动机很明确同 session 并发不是良性失败而是互相踩踏——上游server.js没有锁且共享page.goto。这意味着发布流程中任何open/type/click之间都不能并行必须串行等待上一条完成。Pitfalls七个已知坑及规避方案pitfall: editor_not_prosemirror触发知乎编辑器 DOM 结构变更症状.ProseMirror选择器找不到编辑器workaroundfallback 到.public-DraftEditor-root或[contenteditabletrue]pitfall: markdown_not_supported触发直接粘贴 Markdown 文本到编辑器症状Markdown 标记原样显示不被渲染workaround用编辑器工具栏格式化或分段输入先输入纯文本再用快捷键加粗/设标题等pitfall: image_upload_timeout触发上传大图片症状上传进度卡住workaround图片压缩到 2MB 以内再上传超时后重试一次pitfall: anti_spam_check触发短时间内发布多篇内容症状出现验证码或操作过于频繁提示workaround每次发布间隔 60 秒以上pitfall: numeric_html_entities触发从知乎复制内容时症状文本含#x4F60;等编码workaround解码 HTML 实体后再使用pitfall: click_timeout触发camoufox-cli click ref命令卡死或被 SIGKILL症状click 命令无响应进程被杀workaround改用eval里调element.click()绕过先querySelectorAll找到目标按钮直接.click()pitfall: fill_not_clearing触发编辑器已有内容时直接fill新内容症状新旧内容拼接在一起workaroundfill 前先eval执行selectAlldelete清空编辑器pitfall: import_link_blocked触发使用知乎导入链接功能导入公众号文章症状导入后编辑器为空无报错提示workaround知乎规范会过滤含导流二维码、广告外链、违禁词的内容。导入失败后改用fill直接填入纯文本错误处理速查表情况处理未登录 / 登录墙走前置条件的有头手动登录流重试一次编辑器未加载等待 5 秒后重试检查选择器发布按钮灰色检查标题/正文是否已填写验证码 / 频率限制等待 60 秒后重试session 正忙fail-first等当前操作完成再重试不要盲试click 命令卡死改用 eval element.click() 绕过发布后调用 published-track 记录发布发布成功确认后必须调用 published-track 技能记录本次发布。知乎在 published-track 中对应表pub_zhihu内容类型为 article/post特有指标为 views / upvotes / comments / favorites见 init-db.sh 中的建表语句。实际记录通过合并入口record.sh完成--platform取表名去掉pub_前缀即zhihu./skills/published-track/scripts/record.sh \ --platform zhihu \ --title 文章标题 \ --content-type article \ --source-folder output_articles/xxx \ --publish-url https://zhuanlan.zhihu.com/p/xxx常见配套查询./skills/published-track/scripts/query.sh --platform zhihu # 某平台全部记录 ./skills/published-track/scripts/query.sh --platform zhihu --limit 10 # 最近 N 条 ./skills/published-track/scripts/check-published.sh \ --platform zhihu --source-folder output_articles/xxx # 是否已发布这构成了 xiaobei 内容流水线的完整闭环打分预测content-calibrator1A→ 发布zhihu-publish→ 记录published-track1B。zhihu 已纳入 content-calibrator 的平台白名单见 cal-toggle.sh发布前的质量门槛同样适用。小结zhihu-publish 是 xiaobei 知乎获客链路中的发布引擎其核心方法论可归纳为三点持久化 session 闭环登录态自管、不落中央存储、有头登录无头复用、浏览器原生操作命令串行编排open → snapshot → type/fill/click/eval/uploadfail-first 保证不互相踩踏、合规发布纪律创作声明必设、60 秒发布间隔、完成后记录入库。理解了 forked camoufox-cli 在 upload、fail-first 队列上的源码级支撑就能在遇到 DOM 变更、click 卡死、导入被拦截等 Pitfalls 时快速定位并绕过稳定支撑知乎平台的日常内容发布。赞分享人工智能AI Agent大模型AI 应用媒体生成【免费下载链接】xiaobei为OPC/中小微企业量身打造的自媒体获客智能体项目地址https://gitcode.com/gh_mirrors/wi/xiaobei点击查看免费下载相关推荐基于 camoufox-cli 持久化 session 的微博自动发布实战weibo-publish 技能图文视频发布全流程解析基于 camoufox cli 持久化 session 的微博自动发布实战weibo publish 技能图文视频发布全流程解析 微博开放平台 API 对个人人工智能AI Agent大模型AI 应用媒体生成xiaobei 项目 xhs-interact 技能实战基于 camoufox-cli 持久化 Session 的小红书评论、回复、点赞与关注自动化xiaobei 项目 xhs interact 技能实战基于 camoufox cli 持久化 Session 的小红书评论、回复、点赞与关注自动化 本指南以人工智能AI Agent大模型AI 应用媒体生成xiaobei 微信视频号发布实战基于 camoufox-cli 与 wechat-channel 持久化 Session 的无头自动发视频指南xiaobei 微信视频号发布实战基于 camoufox cli 与 wechat channel 持久化 Session 的无头自动发视频指南 本文围绕 x人工智能AI Agent大模型AI 应用媒体生成上一篇雷神之锤3竞技场多语言支持终极指南Unicode与本地化实现方案下一篇GDash核心功能解析从YAML配置到自定义图表打造专属监控系统创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

2026最新免备案空间哪家好?告别无人访问,3步搞定
2026最新免备案空间哪家好?告别无人访问,3步搞定

2026最新免备案空间哪家好?告别无人访问,3步搞定 网站做好了没人访问,这是无数站长和企业主最头疼的噩梦。你花了几千块做了个漂亮的官网,结果扔进搜索引擎,搜半天连个影子都找不到,流量数据一片死寂。别急,问题往往不出在设计,而出在底层架构和… · 2026/9/27 8:54:27

linuxkit 内嵌的 go-autorest:从 v1.0.0 到 v14.2.1 的 Azure Go SDK 演进全解读
linuxkit 内嵌的 go-autorest:从 v1.0.0 到 v14.2.1 的 Azure Go SDK 演进全解读

操作系统云原生容器运行时 【免费下载链接】linuxkit A toolkit for building secure, portable and lean operating systems for containers 项目地址: https://gitcode.com/gh_mirrors/li/linuxkit 点击查看 免费下载 本文以 linuxkit 仓库中 vendor 的 go-autor… · 2026/9/27 8:54:27

Styled System 的 should-forward-prop 指南:用 Emotion 精确过滤 Styled System 样式 props
Styled System 的 should-forward-prop 指南:用 Emotion 精确过滤 Styled System 样式 props

前端UI组件设计系统 【免费下载链接】styled-system ⬢ Style props for rapid UI development 项目地址: https://gitcode.com/gh_mirrors/st/styled-system 点击查看 免费下载 本指南围绕 styled-system/should-forward-prop 展开,讲解如何借助 Emoti… · 2026/9/27 8:54:21

奉化首页的关键词优化速查手册
奉化首页的关键词优化速查手册

奉化首页关键词优化怎么选才不踩坑 做奉化本地网站的老板们,是不是经常盯着后台数据发愁?明明花钱做了个站,访客进来转一圈就走了,连个询盘电话都没有。很多人第一反应是:我的网站是不是太丑了?或者说,模板网站太丑不够用,是不是换个高颜值的模板就能… · 2026/9/27 9:29:57

织梦5.5模版安装上去为什么打开网站图片不能显示教程怎么选
织梦5.5模版安装上去为什么打开网站图片不能显示教程怎么选

织梦5.5图片不显?对比评测3种修复方案,避开域名服务器坑 域名服务器配置搞不懂,织梦5.5模板装完图片全裂开,这简直是新手建站最崩溃的瞬间。别急着骂服务器,十有八九是路径没对上或者权限没给够。我做了组对比评测,把三种主流修复方案扒了个底朝… · 2026/9/27 9:29:57

After Effects (AE)2026超详细保姆级安装教程
After Effects (AE)2026超详细保姆级安装教程

一、为什么一定要升级AE2026? 1. 3D功能大爆发,不用再依赖C4D了 以前做个简单的3D立方体,还要先开C4D建模再导进AE里,来回切换软件简直是噩梦。这次2026版本直接把3D功能拉满了,内置了立方体、球体这些基础的参数化模… · 2026/9/27 9:29:51

Python 比较运算符与逻辑运算符的返回值
Python 比较运算符与逻辑运算符的返回值

1. 比较运算符 常见的比较运算符&#xff1a; > < > < !在 Python 的常见基础用法中&#xff0c;比较运算符返回的是 bool 类型&#xff1a; 3 > 2 # True 5 4 # False 10 ! 8 # True比较运算符 → 返回 bool2. 逻辑运算符 Python 中… · 2026/9/27 9:29:45

WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10
WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10

targetSdkVersion 29 后&#xff0c;突然发现无法写文件了。targetSdkVersion 29&#xff0c;可以在 manifest 里加 android:requestLegacyExternalStorage"true"API30 以上只能使用应用私有文件‌&#xff1a;context.getExternalFilesDir()。 · 2026/9/27 9:29:45

变电站巡检机器人通信协议怎么对接?三种主流方案
变电站巡检机器人通信协议怎么对接?三种主流方案

一、为什么巡检机器人必须先谈协议 巡检机器人落地失败的常见原因&#xff0c;不是机器人走不动&#xff0c;而是数据进不了站端系统。机器人一天采回几千条红外测温、可见光图像和表计读数&#xff0c;如果这些数据只能躺在机器人自己的后台里&#xff0c;运维人员看不到、辅… · 2026/9/27 9:29:39

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码