微头条讲究发布时段——我实测晚间 17:30–23:00 流量最高,但人经常在这个点没空盯电脑。手动发文有两个痛点:
document.cookie 拿不全,登录态一刷新就失效。我的解法是:用 WorkBuddy 出脚本和调度思路,用 Playwright 落地登录态保存与发布,再用定时任务在黄金时段自动跑。下面是从 0 到 1 的完整步骤,含我踩过的坑。
小提示:今日头条后台对无头浏览器(headless) detection 较敏感,登录步骤建议用
headless=False真人操作一次,之后发布可再切换。
关键点:不要再用 page.evaluate("document.cookie") 取登录态。头条的关键 Cookie(sid、ttwid、uid_tt)都是 HttpOnly,JS 读不到,所以登录态永远不全、必失效。正确姿势是用 Playwright 的 context.storage_state(),它能拿到包含 HttpOnly 在内的全部 Cookie + localStorage。
运行:
跑完会在当前目录生成 auth_state.json。这个文件就是你的"永久门票",只要不失效就不用再登录。
发布一条:
关于选择器:上面
div[contenteditable='true']与button:has-text('发布')是头条微头条后台实测可用的稳定写法。若后台改版导致失效,可改用page.locator("div[contenteditable='true']").first兜底,或page.press_sequentially(content)替代execCommand(长文本更稳)。微头条没有独立标题框,正文首句即作标题。
Windows 下用自带任务计划程序,每天 19:00 自动发:
查看/删除:
更省事的做法:直接在 WorkBuddy 的自动化(Automation) 里建一个「每天 19:00」的定时任务,prompt 写"运行 publish.py 发一条微头条",WorkBuddy 自己会在黄金时段唤起脚本,连系统计划程序都不用配。
坑 | 现象 | 解法 |
|---|---|---|
滑块验证码识别率低 | ddddocr 自动拖成功率仅 5–15% | 登录只做一次,存 auth_state.json 长期复用;不每次都过滑块 |
Cookie 拿不全 | document.cookie 缺 sid/ttwid/uid_tt,登录态秒失效 | 改用 context.storage_state(),HttpOnly 也能读 |
验证码过期 | 脚本周期与人工输入时间差导致码失效 | 登录态一次性保存,发布环节不再需要验证码 |
无头被风控 | headless 模式易触发验证 | 登录用有头,发布长期复用已存态 |
正文写不进/不保存 | ProseMirror 编辑器,直接注入 innerHTML 不触发输入事件 | 用 document.execCommand('insertText') 或 page.press_sequentially() |
结论:自动化发布的命门不是"模拟得多像",而是"登录态存得全、用得久"。把一次性人工登录解决好,后面 99% 的工作都能自动化。
按上面这套,我现在的工作流是:WorkBuddy 帮我打磨文案 → 一条命令/一个定时任务在 19:00 自动发出 → 登录态失效才需要人工登录一次(约几周一次)。晚上即使不在电脑前,微头条也照常出现在黄金时段。
如果你也在用 WorkBuddy 搞内容自动化,欢迎在评论区交流你卡在哪一步,我可以把对应脚本再细化。
投稿说明(给审核同学):本文标题含「WorkBuddy」,正文含完整 Python 代码、pip/schtasks 命令示例与真实踩坑表,属带步骤与命令的实操教程,可直接发布于 WorkBuddy 专区。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。