无尘阁 · 实验室
SELF-BUILT · 自研 · WINDOWS PORT

公众号采集雷达
在微信里「看」出真实读数

公众号的阅读量没有公开接口,只能靠界面读。这个技能在 Windows 的微信 4.x 桌面端里自己走进公众号主页、逐篇打开文章、把底栏的阅读 / 赞 / 转发 / 评论和首条精选留言读下来,再落成 JSON 和一张能交差的 Excel。原版是 macOS 专用,这一版把公众号这条链路整层重写成了 Win32。

40 个 Python 脚本 5,976 行 Windows 微信 4.x 0 个付费 API 2026-11-11

这份技能真跑出来的数

不是样本,是 6 个号从 2025 年起逐篇打开读下来的全量结果
6
个公众号
2,747
篇逐篇采完
1180万
阅读量合计
217
阅读破万
12
阅读破 5 万
136,445
点赞合计
≥ 5 万
12 篇
1 万 – 5 万
205 篇
1 千 – 1 万
2,502 篇
< 1 千
28 篇

口径:门槛设为阅读 ≥ 1000 才入库,< 1000 的 28 篇是早年存档或小号文章,保留在原始 JSON 里但没有进表。阅读量是采集当天的快照,每行都带采集时间。

为什么这件事必须「看屏幕」

先把技术事实摆出来,再谈怎么绕

公众号文章的阅读数走的是登录态下的异步接口(页面里那个 read_num),没有公开 HTTP 入口可查。意味着任何「传个链接就返回阅读量」的承诺都是假的——要么你有号主的后台,要么你得像人一样把文章打开、滚到底、看那行字。

所以这个技能的定位很明确:把「人肉翻公众号」这件事自动化。它不绕过任何权限,只是替你把鼠标键盘的动作做一遍——打开、滚动、截图、认字、复制链接、关标签。

能拿到的从哪来可靠性
阅读量文章页滚到底,「阅读 NNNN」界面直读,每次都是当天最新值
赞 / 转发 / 评论数同一屏底栏四件套部分老文、转载文不显示,留空
留言数 + 首条留言 + IP + 时间底部留言区 OCR只有作者「精选」过的才公开
标题 / 公众号 / 作者 / 发布时间文章页 HTML 元信息权威值,比 OCR 稳,采集后自动回写校正
原始分享链接「···」→「复制链接」可直接在浏览器复核

一条真实记录长什么样

下面这条是原始 JSON 里的实录,没做任何修饰
罕见!任正非述职报告 · HR赋能工坊 阅读100,000 赞619
转发8,928 评论566
留言数45 听过931
首条评论20多年前的述职报告拿来学?
发布2025-12-16 16:00
地点北京
采集时间2026-11-03 20:54:32
通道Windows 微信 4.x · WeChatAppEx · UI Automation

这条记录的每一格都能回到源头核对:阅读与四件套来自文章底栏,留言来自留言区截图,链接来自「复制链接」。拿不到的东西也写清楚——留言的点赞数微信不展示,所以表里没有这一列;作者只精选过自己引导语的号,首条评论就是那句引导语,表里照原样记。

六个号,逐号的账

同一套流程、同一套门槛,跑出来的实际覆盖
公众号已采篇数阅读 ≥ 1000阅读 ≥ 1 万单篇最高阅读合计
华夏基石e洞察87787691100,0004,689,044
领教工坊6906875866,0002,874,022
HR赋能工坊5665657100,0001,485,557
锚在新宇宙3583584571,0001,803,690
AI组织进化论2252241589,000896,923
包子堂319125,00051,514
合计 6 个2,7472,719217100,00011,800,750

包子堂只有 31 篇是因为它的门槛单独放宽到 500 阅读、且这个号本身更新少;剩下的差距不是漏采,是号与号的量级差。

五步流水线

从「一个号名」到「一张 Excel」,中间不留手工环节
STEP 1
进主页,先扫一遍
公众号主页每张卡片左下角直接印着「阅读 N 赞 M」,先便宜地筛一遍,只对达标的开文章
STEP 2
探时间边界
卡片不带日期但严格倒序,二分打开几张读日期,定位某年 1 月 1 日在列表里的下标
STEP 3
逐篇打开读数
滚动到目标卡片、点「阅读 N 赞 M」那一行、UIA 抓底栏、OCR 认留言、复制链接、关标签
STEP 4
补缺口
扫到的清单与已采做差集,按阅读量定点补采;断点续采,中断不丢已采的篇目
STEP 5
出表 + 核验
三个 sheet(清单 / 账号覆盖核对 / 口径说明),再把整表导 PNG 做一次视觉核验

三层通道,各管一段

17 条坑,最贵的六条

全部是实测撞出来的,完整记录在技能包的 references/卡点与解法.md(27.5 KB)
现象真因解法
32 篇明明在屏幕上,一篇都匹配不上卡片上写全角「,」、清单里存半角「,」,两边各用一套归一化统一走 NFKC + 抹掉全部标点空白。代价是白扫了 149 屏
点标题,打开的却是隔壁那张卡主页是双列布局,两列标题在同一 cy 上交错,±340 的窗口会把隔壁列拉进来窗口收到 ±170,点击点改点「阅读 N 赞 M」那一行(它的 cx 就是本列中心)
「滚 7185px」实际飞了 14 万像素dy 是「每一格」的格数,写成 dy=-n, steps=n 就是 n²×100px改成 dy=-1, steps=n
连点三个「进账号」全进了一个假主页,扫出 0 篇搜一搜右侧「相关搜索」每条都以账号名开头(领教工坊私董会收费 / 招聘…)改用 UIA 找「xxx - 账号」这个 ListItem,点它正下方 95px 的卡片主体
点击打到了别的窗口,OCR 出「编辑(E)/窗口(W)」WorkBuddy 是 TOPMOST,盖住微信SetWindowPos(HWND_NOTOPMOST) 先把宿主打掉再点
剪贴板写入报 access violation writing 0x064 位下 GlobalAlloc/GlobalLock 没声明 restype所有 ctypes 调用补全 argtypes / restype

还有一条不算坑但必须记住:「翻到底」的判据不能只看有没有新标题。单列大卡的号有 540 篇、合计 11 万像素,UIA 树只保留窗口附近一段。现在是连续 8 次无新增后,先 End 跳底复核、再 Home 回顶复核,两轮都空才收工。

先说清楚做不到的部分

这不是「输入链接就出数据」。它必须在一台登录着微信 4.x 的 Windows 上跑,跑的时候不能动鼠标键盘——合成事件会被人手打断。它是「自动化操作」,不是「破解接口」。
本版只移植了公众号链路。原版 macOS 的微信指数、问 AI 面板、视频号下载转写、视频转录,这一版没有,需要仍走 macOS 版或手工。
留言只看得见「精选」。微信只展示作者精选过的留言,很多号只精选了自己的置顶引导语,甚至关闭留言。表里留空是事实,不是漏采;置顶那条多是作者引导语,想看真实反馈要往第二条以后看。
阅读量是快照,不是累计。每次打开读到的都是当时的值,会随文章继续传播而涨。所以每条记录强制带「采集时间」,跨批次的数字不能直接横比。
超大型号要分批。领教工坊主页 2013 篇、阅读 ≥ 1000 的有 1840 篇,逐篇开每篇约 15 秒,全量 7 小时以上。所以按阅读分层推进(--min 5000 是 326 篇,--min 10000 是 62 篇),不是一趟跑完。

包里有什么

完整脚本、两份口径文档,以及上面那套流程的全部命令。换一批号再跑,改的只是账号清单和门槛。

SKILL.md                  技能说明与五步流程(本页面的来源)
scripts/                  40 个 Python 脚本,5,976 行
  wxlib.py                Win32 底层:窗口/截图/OCR/点击/键盘/剪贴板
  uia.py                  UI Automation:枚举、查找、取值、归一化
  gzh.py                  公众号链路:搜一搜 → 文章页 → 复制链接 → 读底栏
  scan_profile.py         进主页一路翻到底,落每张卡片上的阅读/赞
  probe_cutoff.py         二分找某年 1 月 1 日在列表里的下标
  collect_uia.py          从主页自上而下逐条打开达标文章
  fill_gaps.py            清单达标但没采到的定点补
  run_years.py            多个号按各自门槛串行跑
  build_workbook.py       出三 sheet Excel
  export_sheet_png.py     整表导 PNG 做视觉核验
references/
  字段口径.md             每个字段的定义、来源、空白含义
  卡点与解法.md           17 条 Windows 实测坑(27.5 KB)

依赖只有四个:pip install mss pillow rapidocr_onnxruntime openpyxl。

下载技能包 ZIP

姊妹技能:同一件事的另一条路

我这边是「界面路线」,那边是「接口路线」,两页互链,对着读才完整
OPEN SOURCE · 第三方工具 + AI 工作流
公众号「收—存—用」SOP →
登录微信读书,用 HTTPS 加签名去要 JSON:__biz 解成 MP_WXS_{uin} 当 bookId,四路接口兜底拉列表,GenSignature 纯 Python 复刻签名,-2014 退避 / -2041 防水墙熔断 / 多账号轮换,最后正文连同图片整篇落盘,走 RSS 2.0 定时补新,再交给 Obsidian 与 Codex。它秒级拿得到全文,但一个阅读量也看不见 —— 正好是本页这只眼睛的活。
打开它的技能简历 →

分工一句话:要指标找这里(界面直读,只有它看得见阅读量、赞、精选留言);要全文去那边(接口路线,秒级拿正文加图片,还能开 RSS 盯增量);两个都要,就先用这里的阅读量筛出值得存的篇目,再让那边整篇搬进本地库。

公众号采集雷达(Windows 移植版)· 自研 · 上架 2026-11-11
数据口径:2025 年起全量逐篇采集,阅读门槛 ≥ 1000(包子堂 500),6 个号 2,747 篇,采集时间 2026-11-02 ~ 11-04。
← 回 skills 实验室