☰
把微信公众号变成 RSS 流?wewe-rss 私有化部署实战手册
2026/10/16 2:07:23 网站建设 项目流程

把微信公众号变成 RSS 流?wewe-rss 私有化部署实战手册

【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss

当订阅号红点变 99+ 时

每天早上打开手机,订阅号列表红点已经 99+,你真正想看的那篇文章早被群发推文刷到了第三条。微信公众号没有订阅入口,只能一个个点进去翻。wewe-rss 解决的就是这个问题:它基于微信读书接口,把微信公众号文章转换成标准 RSS 流,支持私有化部署,让你在任意 RSS 阅读器里统一管理。跟着走,15 分钟搞定。

5 分钟部署

最省事的路径是 Docker Compose,一条命令同时拉起服务和 MySQL:

git clone https://gitcode.com/GitHub_Trending/we/wewe-rss cd wewe-rss
docker compose up -d

你会看到docker compose ps里 db 和 app 两个容器都变成 running。不想用 Docker 的话,本地包管理器也能跑:

pnpm install && pnpm run -r build && pnpm run start:server

终端打印 NestJS 启动完成、监听 4000 端口即成功。

💡 两个最容易踩的坑:服务默认监听4000 端口;管理界面需要输入授权码,默认就是 compose 文件里的AUTH_CODE(123567)。另外如果要把服务部署到公网给人用,一定要设置SERVER_ORIGIN_URL为服务器公网 IP 或域名,否则生成的订阅链接指向 localhost,别人打不开。想更轻量也可以把启动文件换成docker-compose.sqlite.yml,少跑一个数据库容器。

浏览器打开http://localhost:4000,输入授权码后出现管理界面,即部署成功。

从绑定账号到看到文章

当你第一次用、想尽快看到文章时

  1. 管理界面进入账号管理,点添加读书账号,扫码登录微信读书。这是抓取内容的凭证,账号只存在你自己的服务端。扫码时注意别勾选"24 小时后自动退出"。
  2. 切到公众号源标签页,点添加,在弹窗里粘贴一篇该公众号的分享链接,点确定。
  3. 系统会自动识别公众号,并开始抓取它的历史文章。
  4. 添加成功后每个公众号都有独立订阅地址,格式是/feeds/{公众号ID}.rss,直接复制进阅读器。

⚠️ 添加频率过高容易被封控,等 24 小时解封,一次别批量猛加。

当订阅号红点 99+、懒得一个个点开时

在公众号源页面点导出,可以一键生成 OPML 文件,把所有订阅源批量导入别的阅读器,迁移零成本。日常阅读推荐直接订阅聚合流/feeds/all.rss,所有公众号的新文章统一进一个列表,每条带来源公众号名,不用来回切订阅源。想单独盯某个号,就订它的/feeds/{公众号ID}.rss。

当信息流被无关推送淹没时

订阅地址支持title_include和title_exclude两个参数,竖线分隔多个词,可以组合"只要 AI 相关、不要招聘"这类规则:

curl "http://localhost:4000/feeds/all.atom?title_include=AI|机器学习&title_exclude=招聘"

过滤在服务端完成,阅读器端零改造,效果是流里只保留标题命中关键词的文章。

当你想全文读完、不跳回微信时

默认每条只带摘要,单次请求带上?mode=fulltext即可拿到文章全文,在阅读器里直接读完。热门文章的全文有缓存兜着,二次访问响应很快。

当你通勤路上打开阅读器、希望内容已是最新时

服务内置定时任务,默认每天两次自动抓取各公众号的新文章和增量内容,不用手动刷新。偶尔急用某个号的内容,在它的订阅地址后加?update=true,请求的同时触发一次后台刷新。

从能用到好用

当想部署到公网给别人用时

SERVER_ORIGIN_URL默认为空,此时生成的 RSS 内链指向 localhost。改成公网 IP 或域名后,订阅源里的文章链接、封面地址都会指向能访问的地址,别人导入就能正常打开。

当想默认就出全文时

FEED_MODE默认是摘要模式。改成fulltext后所有订阅地址默认输出全文,响应会变慢一点、内存占用也高些。改的是环境变量,重启容器生效;临时看某一篇则用?mode=fulltext,立即生效不用重启。

当想改更新节奏时

CRON_EXPRESSION默认35 5,17 * * *(每天 5:35 和 17:35 各抓一轮)。想更频繁就改成0 */2 * * *,改成什么样、更新就跟着什么样。

当频繁被封进"小黑屋"时

MAX_REQUEST_PER_MINUTE默认每分钟 60 次,UPDATE_DELAY_TIME默认连续更新间隔 60 秒。账号状态页面如果显示"今日小黑屋",把这两个值调小些,抓取节奏降下来,第二天自动恢复。

接进你的工作流

钉钉群推送。仓库里的 wewe-rss-dingtalk/ 目录自带一个独立服务,直接查数据库里最近 12 小时的新文章,通过机器人 Webhook 推成卡片消息到群里。填好机器人的 access_token 和 secret,跑一下python3 main.py即可,新文章发布不久团队就能收到通知。

脚本消费。聚合流本身是标准 JSON Feed,任何脚本都能直接接:

import requests resp = requests.get("http://localhost:4000/feeds/all.json", params={"limit": 20, "title_include": "AI"}) for item in resp.json()["items"][:5]: print(item["title"])

塞进定时任务,接上邮件、飞书或自己的告警系统都行,改造成本基本为零。

30 秒看懂架构

  • 后端是 NestJS,核心生成逻辑在 apps/server/src/feeds/feeds.service.ts 的handleGenerateFeed,按请求后缀决定渲染 RSS 2.0、Atom 还是 JSON Feed
  • 前端管理界面是 React + Vite,代码在apps/web/src/,页面就是文章里演示的账号管理和公众号源
  • 数据模型和迁移文件在 apps/server/prisma/schema.prisma 旁的 migrations 目录
  • 内存里有一个 LRU 缓存,默认最多存 5000 条已抓取的全文,热门文章二次访问直接命中
  • 想加一种输出格式或过滤条件,从handleGenerateFeed入手最顺手

收尾

建议先只订阅 2~3 个你天天看的公众号,跑一周,再回头调过滤词和更新频率,这样能更快判断哪些配置对你真的有用。下次再打开微信,那篇被刷到第三条的文章,其实已经安安静静躺在你的阅读器列表里了。

【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询