「社区共创实验室」交付:一个能定时、能发出去、可复现的 WPS 社区发帖工具




Lv.3 优质创作者
参加「社区共创实验室」第 1 期——一起做出「定时发帖」。这篇是工具的正式交付稿,包含设计思路、实测成果和完整使用说明,方便其他同学复现。
先说成果:工具真的能定时发出去
工具已成功在 WPS 社区发出真实帖子,内容正常可读、带 #社区共创实验室 话题、发到 WPS AI 圈子。下面这张图就是已发帖子的页面实拍,标题、话题、正文都在。
(见配图1:已发帖子页面)
二、为什么是 Playwright,而不是直接调接口
WPS 社区底层是 Discuz 改造的,但登录走的是 WPS 账号体系(account.wps.cn),默认扫码登录,正文是富文本编辑器,还有反自动化检测。我试过传统的 formhash + cookie 直接 POST,登录态、富文本、风控三道坎都过不去。
最后用 Playwright 跑真实浏览器,模拟人工点击和输入,成功率接近 100%。核心逻辑是:访问发帖页 → 自动填标题、正文、圈子、话题 → 点发布 → 监听接口响应确认成功。
三、三个关键设计
1. 登录态复用,不存账号密码
首次用有头浏览器手动登录一次,Playwright 的 storageState 把 cookie 和 localStorage 存成 state.json,之后发帖直接复用。登录态过期了重新跑一次 login 命令即可,全程不碰账号密码。
2. 富文本正文逐段输入
社区正文编辑器是 iframe 里的 ProseMirror 富文本编辑器,直接 fill 填不进去。我的方案是聚焦编辑器后用 keyboard.type 逐段输入,段间按 Enter 换行,保留段落结构。下面这张图是工具自动填写发帖页的效果,标题、正文、圈子、话题都填好了。
(见配图2:工具自动填写发帖页)
3. 定时调度 + 失败兜底
内置调度器每 15 秒轮询任务,到点自动发帖。失败自动重试 2 次,每次失败都截图留证。支持指定日期时间(北京时间)、多任务排期、取消待发任务。
四、使用说明(3 步跑通)
第 1 步:装依赖
进入工具目录,执行 npm install 和 npx playwright install chromium,首次会下载浏览器。
第 2 步:首次登录
执行 node index.js login,会弹出浏览器,手动扫码或手机验证码登录,工具自动保存登录态。
第 3 步:定时发帖
执行 node index.js schedule "2026-08-18 09:30" 添加定时任务,再执行 node index.js daemon 启动调度器,到点自动发。
Windows 用户也可以双击 启动.bat,用菜单操作,不用记命令。
五、命令一览
- login:首次登录
- post:立即发帖(--dry 试运行,--tpl 指定模板)
- schedule "时间":添加定时任务
- daemon:启动定时调度
- list:查看任务列表
- cancel 任务ID:取消待发
- status:查看登录态与任务概览
六、关于验证码
短时间内连续发帖会触发图形验证码风控。工具会自动检测:有头模式下提示你在浏览器输入验证码并点发布,工具自动捕获结果;无头模式下在命令行提示输入。建议两次发帖间隔 10 分钟以上,可大幅降低触发概率。
七、小结
这次共创实验室的题目很实在——不坐等功能上线,自己把工具造出来。工具已满足"能定时、能发出去、内容有效、带话题、可复现"全部要求,代码和说明都开放,欢迎复用和交流。
Lv.1 新人创作者