批量导出微信公众号有可能吗
2026-01-29
先说说为什么我要批量获取公众号文章。
初衷有两个。
一是离线保存,因为有些文章,由于某些原因会被删除。另外是想把一部分历史文章,作为 Context 喂给大语言模型,便于检索和更针对性地对话。
1. 现状
获取单篇文章是简单的,因为每篇都有网址,直接在浏览器打开,离线保存。
难的是批量获取。
主要原因在于,微信公众号并不是一个开放平台,它利用 robots.txt🔗,禁止搜索引擎抓取它的内容。这就是为什么,我们在百度、Google 里几乎没有见过来自微信公众号的结果。
另外,为了更进一步防止爬取,微信还采取了非常严格的反爬措施。
技术上,频繁地请求会导致 IP 地址或账户被封。
法律上,大规模抓取微信公众号内容牟利,可能会构成不正当竞争,而且已经有相关 判例🔗。
因此,在批量导出时,面临的问题很棘手。
2. 技术方案
作为个人项目,常见的方案有三种:
- 人肉点击法。
- 中间人代理法。
- 第三方搜索法。
第一种方案比较费事,效率低,好处是不容易被反爬。简单点,可以用 Selenium 或 Playwright 模拟,但前提是要有文章列表;另一种是用 RPA 工具,在电脑端微信里模拟 GUI 操作。这两者都有一定的开发门槛,而且效果也不太如人意。
第二种方案与第一种类似。用 Mitmproxy 或 Fiddler 这类嗅探工具,拦截手机或桌面端微信公众号数据包,缺点是仍然需要大量的人力介入。
第三种方案其实就是利用搜狗微信搜索。因为这俩是一家,利用搜狗搜索引擎可以获取微信公众号内容,但对单一账户下的文章获取无能为力。
很多时候我们会陷入思维的盲区,有时候真正的答案就在眼皮底下。
微信公众号后台有一个功能,在“超链接”插入里,可以选择搜索其他公众号和文章列表。
看似微不足道的一个“裂缝”,“初极狭,才通人。复行数十步,豁然开朗。”
3. 效果
GitHub 上已经有人这么做了。我在本地试了下,效果挺不错。
原理说白了并不复杂。
首先你要注册一个微信公众号用于获取权限(Permission)。
扫码登陆,微信服务器返回 Token,保存。
模拟调用微信公众号平台的 searchbiz 或 appmsgpublish 接口,检索或批量获取指定公众号的文章列表。
到这里,最难的部分已经过去了。
为了规避反爬和提效,文章的下载可以选择使用代理池,比如 Cloudflare Workers,并发下载,同时降低 IP 屏蔽的风险。
最后导出。
同时要提醒,尽管爬虫不是“非法技术”,但也不是法外之地,尽量不要触碰法律红线。
4. 总结
曾经读研的时候,对计算机网络最开始产生兴趣,就起源于爬虫。
那种借助工具,将繁琐任务自动化的感觉,非常好。
那时候就考虑过批量获取公众号内容,但由于微信的反制措施非常严格,败下阵来。
期间接触到不少网络开发的工具,像 Playwright、Mitmproxy 等。完全没有想到,真正的突破口原来不在这里。
解决一个复杂问题,好的答案,理应是简单的。
这是我在这个问题上受到的最大启发。
(完)
参考
- 本文作者:Plantree
- 本文链接:https://plantree.me/blog/2026/batch-export-wechat-official-account/
- 版权声明:所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
最后更新于: 2026-01-30T01:28:45+08:00