给微信公众号生成 RSS 订阅源
众所周知, 微信公众号比较封闭, 爬取也有一定门槛, 对于 RSS 重度用户来说很不友好, 加上如今订阅号的推送也是乱序时间轴的, 作为在推荐算法的重重包围下做挣扎的一员, 希望在此借助 Github 为同好提供有限的订阅服务.
收录的公众号均来自网友提交或者采集自公开榜单, 不代表任何立场; 所有内容均为手动抄录, 未进行任何逆向工程.
本指南只针对不是很熟悉 github 的朋友, 方便大家直接在网页上提交 pr, 老手可忽略~
-
如果你不熟悉 GitHub 同步上游的操作, 就先在浏览器中打开
https://github.com/<你的github用户名>/wechat-feeds/settings#danger-zone
, 如果能成功访问没有 404, 说明你之前 fork 过, 则点击Delete this repository
并按照提示操作来删除你 fork 后的仓库. 同时这也是接下来每一步操作遇到问题时的通用解决办法.
- 在浏览器中打开 list.csv, 先搜索有没有你需要的公众号, 确定没有则点击箭头指示的编辑按钮, 开始编辑
- 注意事项:
- 可以一次性添加多个, 也可以多次提交pr.
- 请确认自己的输入法, 分隔的标点符号为半角符号, 而不是全角符号, 区别请自行搜索.
- 直接在网页上拉到行尾添加, 以免破坏文件格式.
- 获取
bizid
, 参见 如何获取 bizid name
和bizid
为必需,description
可留空,description
内如有半角双引号、换行、逗号时, 需要转义, 参见 csv 转义方式
根据下图的箭头指示添加完成后, 点击 Propose changes
- 网页跳转后来到如下页面则说明修改成功了, 开始提交 pr
- 接下来你就可以通过 github 或者 Email 查看这个 pr 是否被合并, 或者是否被要求更改
- 选择一篇文章复制链接
- 选择一篇文章复制链接, 注意如果公众号已被永久屏蔽, 就不用再添加了, 会不定期清理已屏蔽的公众号; 如果公众号已迁移, 用迁移后的 bizid
- 在浏览器中打开链接, 右键查看网页源代码, 搜索
var biz
, 可以搜到var biz = ""||"MzI1NTQxODA4NA==";
, 那么MzI1NTQxODA4NA==
也就是需要的 bizid
完全不敢保证, 抱歉 (项目的特殊性决定了一切说绝对稳定的都是过度自信)
暂定两个小时一次
发现太频繁了抓取到的信息达不到预期, 改为七个时间点:
01,07,11,13,16,20,23
如果有更好的时间点设计欢迎 issue 告诉我, 因为凌晨这段时间推送的更新很少, 抓取有点浪费
鉴于账号限制, 暂时只打算提供10000个公众号的服务, 每个 feed 至多只保留20篇
feeds 托管在 github 上, 我无法获取订阅这些 feeds 的用户的任何信息
2020/10/5: 在列表页新增了 GA, 只是为了统计一下列表页的使用情况, 如有介意, 可以使用 list.csv 代替列表页.
真实: 全部是我一条一条定时手动抄录的, 一个小时最多抄录两万个公众号的内容.
首先确保你的输入法切换到半角符号状态
-
如果内容中有半角双引号, 需要在每个半角双引号前面再加一个半角双引号来转义, 然后将内容用一对半角双引号包起来:
假设需要转义的内容为:
它说:"你好"
则改为:
"它说:""你好"""
-
如果内容中有半角逗号, 将内容用一对半角双引号包起来:
假设需要转义的内容为:
你好,世界
则改为:
"你好,世界"
-
如果内容中有换行, 要将整个内容都用一对半角双引号包起来:
不建议包含换行
假设需要转义的内容为:
它说:"你好世界" 它说:"知道了"
则改为:
"它说:""你好世界"" 它说:""知道了"""
主分支 main
:
- list.csv: 由
name
,bizid
,description
组成的无序公众号列表
分支 feeds
储存更新的 feeds
分支 pages
是列表页的源码, 部署在 github pages 上, 其中的 VERSION 文件会随着 feeds 分支 自动更新.
- 同步 gitee 提升访问体验
- 根据 list.csv 生成列表页, 通过 pages 展示 (感谢 Treblex 的 Treblex/wechat-feeds-page)
- 给 pr 和 commit 添加自动 checks
- 给 issue 添加 actions, 来自动获取 bizid 等
- 兼容迁移公众号/自动移除已屏蔽公众号
- 列表页性能提升, 一次性加载性能压力太大
- 考虑添加更多可供列表页搜索/过滤的属性, 例如微信号、 TAG 等
- 思考更简单的添加公众号的方式, 前提是继续控制成本
- 思考如何用低成本实现添加全文(格式处理/IP限制/静态资源限制等问题有点麻烦, 成本很难控制)
- 考虑 feeds 分支使用 force push, 以避免触及仓库容量预警上限
本项目使用完全免费. 但有一定的维护成本, 故此处开放捐赠, 但不对捐赠者做任何关于本项目的额外的承诺, 亦不会在项目中主动公开捐赠者信息.