一键微信公众号 RSS 订阅:wewe-rss 私有化部署完整指南
【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss
微信公众号内容被封闭在微信生态里,RSS 阅读器始终无法直接抓取。wewe-rss 是一个基于微信读书接口的开源工具,能把微信公众号转成 RSS 源。私有化部署之后,你可以把任意公众号当作标准订阅源加进自己的阅读器,内容和账号数据全部留在自己的服务器上。
为什么 RSS 阅读器里看不到公众号内容
一个很常见的早晨场景:打开阅读器,国际新闻、技术博客、Newsletter 都按时更新,唯独你关注的那几个技术号,还得切回微信一条条翻。公众号更新没有对外接口,推送靠平台单发,无法筛选,也无法统一管理。想让它们和其余信息流一样按时聚合、按关键词过滤、多设备同步,一直缺一个中间层。
wewe-rss 就是补这个位置的:它借微信读书的通道拿到公众号文章,再转成标准 RSS 输出,自带 Web 管理页负责加源和维护,还支持定时更新和标题过滤。把"拿内容"这件事需要的东西基本都备齐了。
Docker 一键部署:三条命令跑起 wewe-rss
最省事的方式是 Docker Compose(一条命令把整套服务按配置拉起来)。在装有 Docker 的机器上执行:
git clone https://gitcode.com/GitHub_Trending/we/wewe-rss cd wewe-rss docker-compose up -d第一条拉取项目,第二条进入目录,第三条同时启动应用和 MySQL 数据库,库和表会自动创建好。等一两分钟后打开 http://localhost:4000 就是管理界面。默认配置足够起步,想改参数就编辑 docker-compose.yml。
如果不想维护一个 MySQL 实例,可以改用 SQLite 轻量版:把启动命令里的文件名换成docker-compose.sqlite.yml,数据存在本地一个文件里,个人使用更轻。
从绑定账号到拿到 RSS 链接
打开管理页后要做的第一件事,是绑定一个微信读书账号:在"账号管理"页点添加账号,用手机扫码完成登录。
扫码前记住一件事:不要勾选"24 小时后自动退出",勾了的话账号一天后就失效,得重新扫码。
账号就绪后就能加源。进入"公众号源"页面,点添加,把目标公众号任意一篇分享出去的文章链接粘进去,系统会顺着链接认出公众号信息,并把它发布过的历史文章拉进来。添加频率别太高,短时间内连续加多个源容易被限制。
添加成功后,每个源都会有一个形如http://localhost:4000/feeds/{源ID}.rss的独立地址;另外还有一个聚合地址http://localhost:4000/feeds/all.rss,汇集全部源。把这两个地址填进阅读器(Feedly、Inoreader 之类),RSS 阅读器接入就完成了。
关键环境变量速查:作用与建议值
所有配置都是环境变量,写在 docker-compose.yml 的 app 服务里,改完重启容器生效。最常动的有这么几个:
FEED_MODE=fulltext:输出全文而不是摘要。阅读体验更好,但每次请求更慢、内存占用明显变高。源比较多时建议保持默认的摘要模式。CRON_EXPRESSION:自动更新的定时表达式,默认35 5,17 * * *,即每天 5:35 和 17:35 各跑一次;想更勤快可改成0 */6 * * *每 6 小时一次。SERVER_ORIGIN_URL:服务的对外访问地址。部署到服务器并从外网使用时必须填公网域名或 IP,否则生成的 RSS 内部链接是错的。ENABLE_CLEAN_HTML=true:清理正文里多余的样式和脚本,让 feed 更干净。
另有UPDATE_DELAY_TIME(默认 60 秒)控制连续更新的间隔,调大一些能降低账号被限制的概率。
调校信息流:过滤、分页与手动更新
订阅地址支持几个查询参数,常用姿势各一行:
# 只保留标题含"AI"或"机器学习"的文章 curl "http://localhost:4000/feeds/all.rss?title_include=AI|机器学习" # 排除标题含"招聘"或"广告"的文章 curl "http://localhost:4000/feeds/all.rss?title_exclude=招聘|广告" # 手动触发某个源的更新 curl "http://localhost:4000/feeds/MP_WXS_123.rss?update=true" # 分页取最新 20 条 curl "http://localhost:4000/feeds/all.json?limit=20&page=1"多个关键词之间用管道符|分隔。输出格式按地址后缀自动切换:.rss是 RSS 2.0,.atom是 Atom,.json是 JSON Feed,前两种在主流阅读器里兼容性最好,JSON 则方便前端直接解析。
服务端还内置了 LRU 缓存——说人话就是热点内容会先存在内存里,第二次访问同一篇不用重新抓取,响应几乎是瞬间的,默认上限 5000 条。
排错速查:四种常见现象与处理
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 账号显示"今日小黑屋" | 请求频率过高被微信读书限制 | 等 24 小时自动恢复;若账号实际正常,重启容器即可清除记录 |
| Feed 里只有摘要没有全文 | 默认就是摘要模式 | 设置FEED_MODE=fulltext后重启容器 |
| 更新延迟,长时间没新文章 | 定时任务还没到点,或连续请求被限流 | 用?update=true手动触发;调大UPDATE_DELAY_TIME放慢节奏 |
| 外网的 RSS 地址打不开 | SERVER_ORIGIN_URL没设置或填错 | 改成公网域名或公网 IP 后重新部署,再在阅读器里更新订阅 |
feed 的生成逻辑集中在 apps/server/src/feeds/feeds.service.ts,遇到表里没覆盖的情况,先看容器日志里的报错信息,通常能直接定位原因。
进阶:把它变成团队知识库或行业监控
对技术团队来说,可以订阅一批行业公众号,用title_include只留某个技术栈的文章,把聚合流接进团队内部的阅读器,成员不再需要靠群转发同步资料。
做行业观察则更直接:盯住一个领域的头部号,叠加title_exclude滤掉营销噪音,用聚合源观察竞品的产品动态和行业趋势。因为整套服务在自己手里,数据不会因为第三方平台政策变化而丢。
部署完成之后
服务跑起来只是开始,头几天留意管理页里各源的更新状态,遇到排错表里的现象对照处理就行。比较合理的起点是:先加上最常看的两三个公众号,再在阅读器里验证聚合流是否按时更新。这个闭环走通后,剩下的事就是按自己的习惯调整更新频率和过滤关键词,让服务在服务器上安静地跑着。
【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考