ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

把微信公众号变成 RSS:wewe-rss 私有化部署完整指南

把微信公众号变成 RSS:wewe-rss 私有化部署完整指南

把微信公众号变成 RSS:wewe-rss 私有化部署完整指南

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

wewe-rss 是一款基于微信读书接口、把微信公众号文章转成标准 RSS/Atom/JSON 订阅源的自托管工具,适合想把订阅号内容统一管进阅读器的人。跟着下面四步走,15 分钟内你手里就有了一条自己的聚合订阅流。

把服务跑起来

最短路径是 Docker Compose,一条命令把服务和数据库一起拉起来:

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

服务默认监听 4000 端口,浏览器打开http://localhost:4000就能进管理界面。不想用 Docker 的话,装好 Node 20 环境后执行pnpm install && pnpm run -r build && pnpm run start:server也能跑起来,只是数据库要自己准备。

💡 提示:不想维护 MySQL 时,把启动文件换成docker-compose.sqlite.yml就是轻量 SQLite 版本,单人自用足够;想给/feeds之外的后台接口加一道授权,可以在 compose 里设置AUTH_CODE。

从账号到第一条内容

  1. 添加读书账号:进入账号管理,点添加读书账号,用要抓取的微信读书账号扫二维码登录。登录成功的凭证保存在服务端,只用来拉取公众号文章。 ⚠️ 扫码时千万别勾选"24 小时后自动退出",否则账号隔一天就失效,得重新扫码。

  1. 添加公众号源:切到公众号源标签页,点左上角添加,在弹窗里粘贴一篇该公众号的文章链接(微信里分享一条出来复制即可),点确定。系统会自动识别公众号身份,并把它发布过的历史文章一并抓回来。别一口气加太多号,频率过高会被封控,封了要等 24 小时才恢复;账号状态里出现"今日小黑屋"同理,等一天即可。

  1. 复制订阅地址:添加成功后每个公众号都会生成独立 feed,把地址贴进你的阅读器就算完成。
# 单个公众号 http://localhost:4000/feeds/{公众号ID}.rss # 全部公众号聚合 http://localhost:4000/feeds/all.rss

⚠️ 打算把服务放到公网给别人用的话,务必在环境变量里把SERVER_ORIGIN_URL设成服务器公网 IP 或域名,不然生成链接里的路径会指向 localhost,别人打开全是 404。

把信息流调到合身

过滤全部走查询参数,在订阅地址后拼上即可,阅读器端一行都不用改:

参数作用默认值 / 取值
title_include只保留标题命中关键词的文章,多词用竖线\|分隔可选
title_exclude剔除标题命中关键词的文章,同样竖线分隔可选
limit/page单次拉取条数 / 页码聚合流 30,单源 10
mode=fulltext单次请求输出全文,立即生效默认摘要
update=true手动触发单个 feed 立即更新false

组合起来的例子:http://localhost:4000/feeds/all.atom?title_include=AI\|机器学习&title_exclude=招聘&limit=20

控制整体节奏的是环境变量,写在 compose 里:

变量作用默认值
FEED_MODE置为fulltext后持续输出全文,响应会变慢、更吃内存摘要模式
CRON_EXPRESSION定时抓取新文章的 Cron 表达式35 5,17 * * *(每天两次)
MAX_REQUEST_PER_MINUTEfeed 接口限流60
UPDATE_DELAY_TIME连续更新之间的延迟,降低被风控概率60s

输出格式看 URL 后缀:.rss兼容性最好,.atom规格更严格,.json留给脚本消费。

走出阅读器

钉钉群推送。wewe-rss-dingtalk/目录里自带一个独立服务,每 4 小时查一次数据库里最近 12 小时的新文章,经机器人 Webhook 推成卡片消息。在main.py里填好access_token和secret就能跑,公众号一发文,群里就收到。

喂给自动化脚本。聚合流本身就是标准 JSON Feed,任何语言直接消费。比如只挑 AI 相关标题:

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"])

把它挂进定时任务,接邮件、飞书或你自己的告警都行。feed 的生成与过滤逻辑集中在 feeds.service.ts,想加一种输出格式或过滤规则,从这里下手最顺。

跑通之后,再做这三件事

  • 先只订 2~3 个你天天看的公众号,跑一周再回头调title_include和CRON_EXPRESSION,哪些配置真有用会一目了然;
  • 每隔几天瞄一眼账号状态,"失效"就重新扫码、"小黑屋"就等一天,别反复重试;
  • 动手改功能前,先读一遍handleGenerateFeed的参数流转,改起来比想象中短。

服务跑起来之后,那些在订阅号列表里被刷到第三屏的文章,会安安静静躺在你的阅读器里等你。

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

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进