news 2026/9/18 10:49:42

把公众号变成RSS:wewe-rss 3步落地指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
把公众号变成RSS:wewe-rss 3步落地指南

把公众号变成RSS:wewe-rss 3步落地指南

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

你有没有遇到过:想追的公众号文章刷不到、更新也追不上?wewe-rss 基于微信读书接口,把公众号内容转成 RSS 订阅源,支持私有化部署,数据留在你自己手里。

① 先搞清楚:这个项目到底解决什么问题

微信公众号的内容散在消息流里,没统一入口也检索不了。wewe-rss 干的事很直接:借用你的微信读书账号去读公众号,把文章抓下来,转成 RSS、Atom、JSON 三种订阅格式,后台按 cron 定时抓取更新。微信只负责"喂"内容,阅读和筛选全部交给你的 RSS 阅读器。

你原来的做法它的做法省下来的时间
逐个点开几十个公众号全部聚合进一个信息流每天翻消息流的十几分钟
错过更新靠翻聊天记录找定时抓取,阅读器里直接提醒翻找旧文的时间
换阅读器要逐个重新订阅导出OPML整体迁移半天手工添加
无关推送混杂着重要内容按标题关键词过滤人工筛选的时间

它和公共 RSS 服务的差别在私有化部署:订阅关系、抓取到的文章都存在你自己的数据库里,服务器在哪、数据就在哪,不经过第三方中转。

② 环境准备与启动:公众号RSS服务私有化部署

你只需要一台装了 Docker 的机器,Node、数据库都不用手动装。

最快路径:Compose 一把拉起

官方推荐的 MySQL 方案,compose 文件里数据库和后台都写好了,克隆下来直接起服务:

git clone https://gitcode.com/GitHub_Trending/we/wewe-rss cd wewe-rss docker-compose up -d # 等 2-3 分钟,浏览器访问 http://localhost:4000

最轻路径:SQLite 单容器

机器资源紧张、或者只是先跑跑看,用 SQLite 版:没有数据库依赖,数据文件落在本地data/目录,容器重启不丢数据。执行这一条就行:docker-compose -f docker-compose.sqlite.yml up -d

启动后你该检查的三件事

  1. 端口可达:浏览器打开http://localhost:4000/login,能出登录页说明服务已经起来了;打不开就回到上一步查日志。
  2. 日志无报错:终端跑docker compose logs -f,看到数据库连接正常、没有连续刷错就稳了,首次启动会跑一遍数据库迁移日志。
  3. 能登录进后台:如果 compose 里设置了AUTH_CODE(示例值123567),登录页输入它就能进;没设置则直接进后台。

注意:服务要放外网的话,记得把 compose 里SERVER_ORIGIN_URL一行取消注释,填上你的域名或公网 IP,否则 RSS 里生成的全部链接都指向 localhost。

③ 核心工作流:从绑定到出稿

从绑账号到出 RSS 地址,一共三步,顺利的话五分钟以内。

🔑 第1步:绑定微信读书账号

操作路径:账号管理 > 添加读书账号,弹窗里出二维码,微信扫一扫完成登录,成功后账号就出现在列表里,支持绑定多个读书账号,状态列会显示每个账号是否可用。

登录确认时千万别勾"24小时后自动退出",勾了授权一天就过期,第二天状态变失效,得重新绑。授权信息只存在你自己的库里,不保存聊天记录之类的敏感数据。

📌 第2步:添加公众号订阅源

操作路径:公众号源 > 添加,把公众号任意一篇文章的分享链接粘贴进去,一行一条,系统识别出公众号后自动开始抓取。

注意:批量加源时留点间隔,添加频率过高会把账号送进"今日小黑屋",要等 24 小时才解封。

加完之后在源详情页点"获取历史文章"可以分批回填旧文,点"立即更新"可以马上拉最新一篇。

📡 第3步:拿到RSS订阅地址

操作路径:公众号源 > 选中某个源(或"全部") > 右上角的 RSS 链接,点开就是可订阅的地址,把它丢进阅读器即可。列表页能直接看到每个源的最近更新时间,哪个源没跟上,一眼能看出来。

源 ID 形如MP_WXS_xxx,"全部"对应的就是all。页面右上角还有"导出OPML"按钮,生成的 OPML 文件可以直接导入 Feedly 等阅读器,换平台时不用一个个重新加。

你能拿到什么:

  • /feeds/{源ID}.rss:单个公众号的 RSS 2.0,兼容性最广
  • /feeds/{源ID}.atom:单个公众号的 Atom 1.0,元数据更全
  • /feeds/all.rss/feeds/all.atom:所有源聚合成一个流
  • /feeds/all.json:JSON Feed,支持limitpage分页,给脚本解析最方便

④ 效率提升:公众号RSS的三个用法

三个用法都不动代码:一个改 URL 参数,一个手动触发,一个直接拉数据。

用法1:标题过滤,只看你在意的

订阅号多了之后信息量先过载,在订阅地址上加参数,阅读器里就只剩匹配的文章:

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

title_includetitle_exclude都支持用|写多个关键词,先按 include 命中、再按 exclude 剔除,两个条件叠加生效。过滤只作用于输出,不影响库里抓到的文章,随时可以把参数去掉看全量。

用法2:手动触发更新,不用等定时

定时抓取默认每天 5:35 和 17:35 各跑一次,刚加的源等不及的话,访问源地址时带上update=true立刻刷新:

http://localhost:4000/feeds/{源ID}.rss?update=true

更新是异步的,这次请求不会等抓取完成才返回,过一会儿再刷新就能看到新文章。

注意:手动更新走的是同一套接口,触发频繁同样可能进小黑屋,手动拉一次后歇一会儿再动。

用法3:喂给自己的自动化脚本

/feeds路径不需要登录态,外部脚本直接拉 JSON 就能做文章播报:

import requests r = requests.get("http://localhost:4000/feeds/all.json", params={"title_include": "AI|机器学习", "limit": 20}) for item in r.json()["items"]: print(item.get("title"), item.get("url"))

print换成钉钉 webhook 或邮件发送,就是一个按关键词过滤的文章通知器。配合你系统里的 cron 或定时器,隔几小时跑一次就行。

⑤ 踩坑速查

高频问题基本都在这张表里,先查表再动手。

现象最可能的原因一句话处理是否需重启
4000 端口打不开端口被占或防火墙拦截映射改成-p 8080:4000
外网看 RSS 链接还是 localhost没配SERVER_ORIGIN_URL填公网域名后重建容器
加源失败、状态显示小黑屋请求频率过高等 24 小时,降低操作频率
扫码成功但账号显示失效勾了24小时自动退出重新添加,这次别勾

账号状态怎么读

  • 正常:可以正常抓取,不用管。
  • 今日小黑屋(受限):当天被风控,等 24 小时自动恢复,急用可以重启服务/容器把记录清掉。
  • 失效:登录态没了,回账号管理重新扫码绑定。

⑥ 想继续深入?

下面几个方向都只动配置或加模块,不碰核心逻辑。

  • 改更新节奏:CRON_EXPRESSION
  • 开全文模式:FEED_MODE=fulltext
  • 正文HTML清理:ENABLE_CLEAN_HTML
  • 接钉钉通知:wewe-rss-dingtalk目录
  • 前端二次开发:apps/web目录

如果你要贡献或二次开发,RSS 生成的入口在 feeds 服务源码,钉钉推送模块在 wewe-rss-dingtalk。

wewe-rss/ ├── docker-compose.yml # MySQL 部署配置 ├── docker-compose.sqlite.yml # SQLite 轻量配置 ├── apps/server/src/feeds/ # RSS 生成核心逻辑 ├── apps/web/ # React 管理界面 └── wewe-rss-dingtalk/ # 钉钉通知模块

今天就试一下:compose 起个服务,绑一个读书账号,把 all.rss 加进你的阅读器。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 10:49:37

SQL Server 2019 内网脱机安装机器学习组件与卡点排查

SQL Server 2019 这套东西,装过的人都知道,常规数据库引擎部分其实半小时就能搞定,真正让人抓头的是微软把机器学习组件(R、Python)从安装介质里拆出去这件事。你可能已经试过:内网机器上挂载 ISO&#xff…

作者头像 李华
网站建设 2026/9/18 10:48:48

MySQL安装全流程:Windows、Linux、macOS与Docker指南

装 MySQL 这件事,说简单也简单,官网下个安装包一路回车也能跑起来;说麻烦也麻烦,我见过太多人卡在最后的 “Start the Server” 那一步,或者装完之后发现初始密码没记、字符集是 latin1、Navicat 连不上、远程服务器连…

作者头像 李华
网站建设 2026/9/18 10:48:41

初中Python复习题的底层逻辑与自动批改实践

简介:本资源是一份专为初中八年级信息技术课程设计的Python编程基础复习题集,面向零基础初学者系统巩固核心语法与计算思维。文档以单项选择题形式覆盖变量命名规则、数据类型(int/float/str)、输入输出函数(print/inp…

作者头像 李华
网站建设 2026/9/18 10:47:46

React Native与OpenHarmony融合的高性能TextInput优化方案

1. 项目背景与核心价值在移动应用开发领域,表单输入组件一直是用户体验的关键环节。传统跨平台方案在文本输入处理上往往面临性能瓶颈和交互体验不一致的问题。这个项目将React Native的跨平台能力与OpenHarmony系统特性深度结合,打造了一个高性能的Text…

作者头像 李华
网站建设 2026/9/18 10:47:29

电赛三人组分工误区:软件不是万能胶水,而是信号链关键一环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 10:46:32

VS Code 插件开发实战:拼题A刷题、本地编译与自动提交

1. 为什么我要在编辑器里写拼题A的题先说清楚这个插件是干什么的。拼题A(Pintia)是很多高校程序设计与数据结构课程在用的在线判题平台,题目质量不错,但它的使用体验有一个绕不开的痛点:你必须在浏览器和编辑器之间来回…

作者头像 李华