前言
如果你在运营微信公众号,每次手动粘贴内容、设置封面、点击发表的流程会占用大量时间,在需要批量发布系列内容时尤其低效。本文介绍如何用 Python + Playwright 实现微信公众号图文的全流程自动化发布,包括登录保持、内容填写、封面设置、两步确认对话框处理等关键细节。
技术选型
| Python 3.10+ | 主语言 |
| Playwright | 浏览器自动化(比 Selenium 更稳定、支持现代 SPA) |
| Chromium 持久化 Profile | 保存登录态,避免每次扫码 |
安装依赖:
pip install playwright
playwright install chromium
整体流程
登录(持久 Profile)→ 打开新建图文页 → 填标题 → 填正文 HTML
→ 点\”发表\”打开设置面板 → 设置封面 → 点面板\”发表\”
→ 处理确认弹窗 → 处理\”继续发表\”二次弹窗 → 完成
核心代码
1. 持久化登录
用 launch_persistent_context 代替普通 launch,Chrome Profile 保存在本地磁盘,下次启动自动复用 Cookie,无需重复扫码。
from playwright.sync_api import sync_playwright
from pathlib import Path
CHROME_PROFILE = Path(\”/root/scripts/wechat_chrome_profile\”)
with sync_playwright() as p:
ctx = p.chromium.launch_persistent_context(
user_data_dir=str(CHROME_PROFILE),
headless=False,
args=[\”–no-sandbox\”, \”–disable-blink-features=AutomationControlled\”],
user_agent=\”Mozilla/5.0 (Windows NT 10.0; Win64; x64)…\”,
viewport={\”width\”: 1440, \”height\”: 900},
locale=\”zh-CN\”,
)
page = ctx.new_page()
首次运行时手动扫码登录,之后登录状态长期有效。
2. 获取 Token
微信公众平台的编辑器 URL 需要携带 token 参数,从主页 URL 中提取:
import re
def login_and_get_token(page):
page.goto(\”https://mp.weixin.qq.com/cgi-bin/home\”, timeout=30000)
page.wait_for_load_state(\”networkidle\”)
m = re.search(r\”token=(\\d+)\”, page.url)
if m:
return m.group(1)
# 未登录,等待扫码
page.goto(\”https://mp.weixin.qq.com/\”)
page.wait_for_url(lambda u: \”cgi-bin\” in u, timeout=0)
return re.search(r\”token=(\\d+)\”, page.url).group(1)
</


