← Back to skills
extension
Category: Data & AnalyticsNo API key required

公众号后台数据抓取

微信未认证号的后台数据抓取工具。绕过 datacube 404 / freepublish 48001,用 Playwright 扫码一次常驻登录态,把已发表文章列表 + 每篇阅读/分享/在看/评论 + 涨粉 + 文章链接一键导出 CSV 和 Markdown。零基础可用,无登录密码外传。

personAuthor: user_00f5d122hubcommunity

wechat-mp-data-grab · 公众号后台数据抓取

未认证的公众号拿不到后台数据?datacube 404、freepublish/batchget 48001 —— 那是接口权限墙,不是你的错。 浏览器登录态不受这套权限限制。这个 skill 帮你扫码一次,之后全自动抓已发表文章、阅读/分享/在看/涨粉,导出成表格。


它解决什么问题

微信公众号未做微信认证时,官方 API 的数据能力是关闭的:

| 你想拿的数据 | 官方 API | 结果 | |---|---|---| | 阅读 / 分享 / 在看 / 评论 | datacube/getarticletotal | HTTP 404 | | 涨粉 / 累计用户 | datacube/getusersummary | HTTP 404 | | 已发表文章列表 + 链接 | freepublish/batchget | 48001 unauthorized | | 文章详情 | publish/getarticlelist | 40066 invalid url |

404 不是参数写错,是未认证号根本没有这条路由 —— 换参数、换文档、重试都无效。

这个 skill 换一条路:用 Playwright 打开你的公众号后台(扫码登录),录制后台页面自己调用的接口数据,解析成表格。权限墙挡的是 API,挡不了你自己的浏览器。


适用场景

  • 想看每篇文章的阅读 / 分享 / 在看数据做复盘,但不想每次手动截图
  • 要给往期文章建「标题 ↔ 链接」库(文末往期推荐要用真实链接)
  • 接口返回 48001 / 404,不确定是权限问题还是自己调错了
  • 想把发文数据沉淀成长期表格,观察趋势

不需要 AppID / AppSecret,只要能扫码登录公众号后台。


安装

方式一:解压即用

unzip wechat-mp-data-grab.zip -d ~/.workbuddy/skills/

方式二:直接克隆目录

把 wechat-mp-data-grab/ 整个文件夹放进 ~/.workbuddy/skills/(用户级,所有项目可用) 或 <项目>/.workbuddy/skills/(项目级)。

前置依赖

npm i playwright && npx playwright install chromium

macOS / Linux / Windows 均可(Windows 下请把路径换成自己的,脚本本身跨平台)。 Python 3 用于解析脚本,无第三方依赖。


快速上手

第一步:抓取

node scripts/grab_mp_data.js --out ./mp-data

首次运行会弹出浏览器,用微信扫码登录(默认等 180 秒)。登录态存到 ./.mp_profile/,之后免扫码。

脚本会依次访问已发表列表、内容分析、用户分析、图文素材四个页面,并把后台返回的所有 JSON 录到磁盘。

第二步:解析

python3 scripts/parse_mp_data.py ./mp-data/raw --out ./mp-data

第三步:看结果

mp-data/
├── 已发表文章.csv      ← Excel 直接打开(UTF-8 BOM)
├── 已发表文章.md       ← 可粘进文档
├── 接口清单.txt        ← 本次命中了哪些接口
├── raw/*.json          ← 后台原始响应
├── pages/*.txt         ← 页面纯文本兜底
└── shots/*.png         ← 每步截图

CSV 长这样:

| 标题 | 发布时间 | 阅读 | 分享 | 在看 | 评论 | 链接 | |---|---|---:|---:|---:|---:|---| | 航班延误3小时,别人在骂街我到账1000块 | 2026-06-30 20:31 | 54477 | 812 | 143 | 66 | 点开 |


常用参数

node scripts/grab_mp_data.js \
  --out ./mp-data            # 输出目录,默认 ./mp-data
  --profile ./.mp_profile    # 登录态存放位置,默认 ./.mp_profile
  --headless                 # 登录态已存在时无窗口运行
  --scan-timeout 180000      # 扫码等待时长(毫秒)

常见问题

提示「缺少依赖 playwright」 先装依赖:npm i playwright && npx playwright install chromium。 如果在隔离环境运行,记得设 NODE_PATH 指向安装目录。

扫码后一直不跳转 登录态可能过期或异常。删掉 .mp_profile/ 重新跑一次。

raw/ 目录是空的 公众平台后台改版了,接口地址变了。看 shots/ 里的截图判断当前页面结构, 或直接用 pages/页面文本_*.txt 做纯文本兜底解析。

解析出 0 条 说明抓到的 JSON 里没有含 title 字段的对象。人工看一眼 raw/ 里的结构, 把新字段名加进 parse_mp_data.py 顶部的 FIELD_CANDIDATES 再跑。

抓到数据但数值全是 0 数据接口是分页或滚动加载的。在页面上多滚几屏,或把 count 参数调大再抓。

有 AppID / AppSecret 能直接用吗 用不上,整个流程只走扫码登录。脚本也不接受任何密钥参数 —— 少一份凭据泄露面。


关于后台改版

公众平台每年改版几次,接口地址、字段名都可能变。这个 skill 用的是探测式设计:

  1. 抓取阶段不猜接口,先把后台返回的所有 JSON 全录下来
  2. 解析阶段不硬编码字段,递归找含 title 的对象,再按候选名抽数值

所以后台改版后,通常只要看一眼 raw/ 的新字段名、往 FIELD_CANDIDATES 里补一行就能继续用,不用重写。


隐私与安全

  • 不需要任何密钥,全流程扫码登录
  • 登录态保存在本地 .mp_profile/ 目录,这个目录等同于账号密码: 不要打包、不要上传、不要提交到 git
  • 抓取的数据仅供号主自己的运营分析使用

文件说明

| 文件 | 作用 | |---|---| | SKILL.md | 触发条件与完整流程(给 AI 读) | | scripts/grab_mp_data.js | 浏览器抓取,录制后台 JSON | | scripts/parse_mp_data.py | 解析 JSON → CSV + Markdown | | references/接口权限速查.md | 各接口在已认证/未认证下的表现,以及是否值得做认证 | | references/公开页反查.md | 不用登录,用公开页反查文章标题与链接的方法 |


顺便一提

如果只需要文章链接和标题(不需要阅读数),连登录都不用 —— 文章页是公开的, 直接 curl 就能抓到标题,还能用 __biz 校验文章归属哪个号。方法见 references/公开页反查.md。