103 个公众号,每天自动进知识库,我是怎么做的

# 103 个公众号,每天自动进知识库

**核心问题:靠手动采集公众号,时间成本和信息损耗太大了。**

一个 Obsidian 知识库,存了 5000 多篇公众号文章,来自 103 个号。如果每天手动打开每个号、翻历史、下载、整理,至少需要半小时。半小时不算多,但 103 个号轮流来,就是 50 多分钟。更关键的是——人持续做重复操作,一定会漏。

四个具体问题:

1. **登录过期** — 采集工具登录 4 天就失效,要重新扫码
2. **图片会裂** — 文章图片来自微信 CDN,随时可能挂
3. **内容混杂** — 100 多个号混在一起,找内容只能全文搜索
4. **信息滞后** — 新文章出来了不知道,等想起已经过了好几天

我对这件事的判断:**这本质是一个「信息管道」问题,不是工具问题。** 要解决的不是一个采集工具好不好用,而是怎么让信息自动流进来。

花了小半天,做了三件事。

## 第一件事:把「拉取」变成「推送」

**之前的方式:手动拉取,每次都要发起请求。**

用的工具是 wechat-article-exporter。一个不错的开源工具,能搜公众号、拉文章、导出全文。但它的模式是「拉取」——想看哪个号,手动搜一下,告诉它「拉 3 页」,它就去拉。今天拉了,明天有新文章,不知道,除非再拉一次。

这个模式的本质问题是:**信息在你的主动请求之后才到达,而不是在你需要之前。** 就像订了报纸但没人送报,每天自己去报摊问「今天有新的吗」。

**换了一个思路:持续订阅,信息自动推送。**

we-mp-rss(简称 WeRSS),逻辑完全不同——扫码登录一次(需要有公众号的微信),订阅感兴趣的号,它在后台 7×24 小时盯着。新文章出来,RSS 自动更新,API 随时可查。

| 维度 | wechat-article-exporter | WeRSS |
|——|:———————–:|:—–:|
| 模式 | 按需拉取 | 持续订阅 |
| 登录周期 | 4 天过期 | 长期稳定 |
| 历史文章 | 可以批量拉 | 自动追踪 |
| 新文章感知 | 靠手动/定时 cron | RSS 自动更新 |

**最终的架构:WeRSS 负责订阅感知,exporter 的 API 负责拉全文。** 两个工具不是替代关系,是互补关系。这也是方案的关键——不追求「一个工具搞定全部」,而是让每个工具做自己最擅长的事。

## 第二件事:图片必须本地化

**微信 CDN 的图片链接,本质上是一个定时炸弹。**

`mmbiz.qpic.cn` 这类链接,微信随时可能清理或变更策略。这不是假设,是已经发生过的事——翻到半年前的文章,图全裂了。

我的规则很简单:**所有新文章,图片存本地。**

存储结构经过几轮尝试,最终选了按公众号分子目录:

“`
公众号文章/assets/
├── ainlp/ ← AI/Agent 领域
├── devops/ ← 运维领域
├── nas/ ← NAS/硬件领域
└── technews/ ← 科技资讯领域
“`

**为什么不能全丢一个目录?** 103 个号,假设每篇文章平均 10 张配图,一个月就是 3 万 + 张图。一个目录塞 3 万个文件,文件系统性能下降,而且没法管理。按公众号分目录的好处很直接:要清理某个号的全部数据,`rm -rf` 一条命令就搞定。

图片名用 URL 的 MD5 Hash。同一个 URL 对应同一个 MD5,多次抓取不会重复下载——这是一个工程常识,但保证了数据一致性。

同步一篇新文章的完整流水线:

1. **下载全文**
2. **Pandoc 转 Markdown** — 格式统一
3. **10 步清洗** — 去噪音、去广告、折叠空行
4. **图片下载** — 提取 URL,下载到 `assets/<公众号名>/`
5. **路径替换** — 原图片链接换成本地路径
6. **写入 vault**

结果:20 篇文章,156 张图片,0 失败。

## 第三件事:用脚本代替人工分类

**103 个号,一个一个手动打标签,是一个典型的「能做但不该做」的事。**

WeRSS 支持给公众号打标签,然后按标签筛选 RSS。但如果 103 个号全部手动操作,保守估计也需要 30 分钟。而且标签标准很难前后一致——打到第 60 个号的时候,可能已经忘了前 30 个怎么打的。

解决方案:写一个脚本,根据公众号名称的关键词自动分类。

| 标签 | 数量 |
|——|:—-:|
| AI/Agent | 45 |
| DevOps/SRE | 17 |
| NAS/硬件/生活 | 17 |
| 编程/开发 | 11 |
| 科技资讯 | 7 |
| 知识管理 | 6 |

103/103 全部分完,耗时不到 10 秒。这个效率差距,就是自动化和手动的区别。**用脚本解决分类问题,本质上不是「省时间」,而是「让分类变得可重复、可验证」。**

现在想看某个标签下的新文章,点一下标签就行,不用搜,不用翻。

## 最终结果

**整个流程的核心不是某一个工具,而是管线设计。**

管线时间表:

“`
7:00 技术类公众号同步(exporter 定时任务)
7:30 AI/Agent 类公众号同步
8:10 每日文章推荐(当天新文章中选 Top 5)
8:30 WeRSS 全量同步(103 个号全部扫一遍)
└→ 新文章下载 + 图片本地化 + 打标签
“`

每天早上打开 Obsidian,当天内容已在目录中。图片走本地路径,不会裂。按标签筛即可找到目标文章。

**回顾整个方案,最有价值的不是 WeRSS、不是图片本地化、不是自动分类——而是把 wechat-article-exporter 从一个「主力工具」变成了「内容管道里的一环」。** 这个角色转变,让整个采集流程从手动变成了自动。

工具本身没变,变的是它们之间的协作方式。**很多时候,解决问题不需要换工具,只需要重新设计工具之间的连接方式。**

所有工具的配置记录在 Obsidian Vault 里,下次有人问可直接搜索。

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top