批量导出微信公众号有可能吗

2026-01-29 pv

先说说为什么我要批量获取公众号文章。

初衷有两个。

一是离线保存,因为有些文章,由于某些原因会被删除。另外是想把一部分历史文章,作为 Context 喂给大语言模型,便于检索和更针对性地对话。

1. 现状

获取单篇文章是简单的,因为每篇都有网址,直接在浏览器打开,离线保存。

难的是批量获取。

主要原因在于,微信公众号并不是一个开放平台,它利用 robots.txt🔗,禁止搜索引擎抓取它的内容。这就是为什么,我们在百度、Google 里几乎没有见过来自微信公众号的结果。

另外,为了更进一步防止爬取,微信还采取了非常严格的反爬措施。

技术上,频繁地请求会导致 IP 地址或账户被封。

法律上,大规模抓取微信公众号内容牟利,可能会构成不正当竞争,而且已经有相关 判例🔗

因此,在批量导出时,面临的问题很棘手。

2. 技术方案

作为个人项目,常见的方案有三种:

  1. 人肉点击法。
  2. 中间人代理法。
  3. 第三方搜索法。

第一种方案比较费事,效率低,好处是不容易被反爬。简单点,可以用 Selenium 或 Playwright 模拟,但前提是要有文章列表;另一种是用 RPA 工具,在电脑端微信里模拟 GUI 操作。这两者都有一定的开发门槛,而且效果也不太如人意。

第二种方案与第一种类似。用 Mitmproxy 或 Fiddler 这类嗅探工具,拦截手机或桌面端微信公众号数据包,缺点是仍然需要大量的人力介入。

第三种方案其实就是利用搜狗微信搜索。因为这俩是一家,利用搜狗搜索引擎可以获取微信公众号内容,但对单一账户下的文章获取无能为力。

很多时候我们会陷入思维的盲区,有时候真正的答案就在眼皮底下

微信公众号后台有一个功能,在“超链接”插入里,可以选择搜索其他公众号和文章列表。

看似微不足道的一个“裂缝”,“初极狭,才通人。复行数十步,豁然开朗。”

3. 效果

GitHub 上已经有人这么做了。我在本地试了下,效果挺不错。

原理说白了并不复杂。

首先你要注册一个微信公众号用于获取权限(Permission)。

扫码登陆,微信服务器返回 Token,保存。

模拟调用微信公众号平台的 searchbizappmsgpublish 接口,检索或批量获取指定公众号的文章列表。

到这里,最难的部分已经过去了。

为了规避反爬和提效,文章的下载可以选择使用代理池,比如 Cloudflare Workers,并发下载,同时降低 IP 屏蔽的风险。

最后导出。

同时要提醒,尽管爬虫不是“非法技术”,但也不是法外之地,尽量不要触碰法律红线

4. 总结

曾经读研的时候,对计算机网络最开始产生兴趣,就起源于爬虫。

那种借助工具,将繁琐任务自动化的感觉,非常好。

那时候就考虑过批量获取公众号内容,但由于微信的反制措施非常严格,败下阵来。

期间接触到不少网络开发的工具,像 Playwright、Mitmproxy 等。完全没有想到,真正的突破口原来不在这里。

解决一个复杂问题,好的答案,理应是简单的

这是我在这个问题上受到的最大启发。

(完)

参考

  1. mp.weixin.qq.com/robots.txt🔗
  2. 知产财经网-赔偿 300 万元!通过网络爬虫抓取微信公众号文章构成不正当竞争🔗
  3. 微信开放社区 | 如何在文章中添加超链接?🔗
在 GitHub 上编辑本页面

最后更新于: 2026-01-30T01:28:45+08:00