给微信公众号生成 RSS 订阅源
列表页 https://wechat.privacyhide.com/
众所周知, 微信公众号比较封闭, 爬取也有一定门槛, 对于 RSS 重度用户来说很不友好, 加上如今订阅号的推送也是乱序时间轴的, 作为在推荐算法的重重包围下做挣扎的一员, 希望在此借助 Github 为同好提供有限的订阅服务.
收录的公众号均来自网友提交或者采集自公开榜单, 不代表任何立场; 所有内容均为手动抄录, 未进行任何逆向工程.
feeds 托管在 github 上, 所以我无法获取订阅这些 feeds 的用户的任何信息
2020/10/5: 在列表页新增了 GA, 只是为了统计一下列表页的使用情况, 如有介意, 可以使用浏览器插件屏蔽或者用 list.csv 手动搜索拼接链接代替列表页.
2021/03/07: #895 图标的实现会请求一台服务器, 代码见 favicon, 是有能力获取订阅者的 IP 地址的. 我承诺我没有记录数据, 但我觉得就算我被信任, 这种仅仅建立在对个体的信任上的方式不健康, 有隐私风险, 大家有什么好的办法可以 issue 与我交流
如果需要某项实时通知, 可以点击对应页面的 Subscribe
本指南只针对不是很熟悉 github 的朋友, 方便大家直接在网页上提交 pr, 老手可忽略~
首先要有一个 github 账户: 注册 | 登录
在浏览器中打开 list.csv, 先搜索有没有你需要的公众号, 确定没有则点击箭头指示的编辑按钮, 开始编辑
Propose changes
(箭头 3), 注意箭头 2 处按照如下格式填写:
新增:
开头, 注意冒号是 半角字符;
分隔公众号, 结尾不要空格, 注意 新增:
后面也有一个空格, 例如 新增: 火绒安全实验室
, 新增: 火绒安全实验室 人民日报
;
分隔, 结尾不要空格, 例如 新增: 火绒安全实验室 人民日报 等
, 新增: 36个游戏资讯公众号
.
bizid
, 参见 如何获取 bizidname
和 bizid
为必需, description
可留空, description
内如有半角双引号、换行、逗号时, 需要转义, 参见 csv 转义方式var biz
, 可以搜到 var biz = ""||"MzI1NTQxODA4NA==";
, 那么 MzI1NTQxODA4NA==
也就是需要的 bizid完全不敢保证, 抱歉 (项目的特殊性决定了一切说绝对稳定的都是过度自信)
大致时间点:
07,11,13,16,20,23
如果有更好的时间点设计欢迎 告诉我, 因为凌晨这段时间推送的更新很少, 抓取有点浪费
鉴于账号限制, 暂时只打算提供 20000 个公众号的服务, 每个 feed 至多只保留20篇
真实: 全部是我一条一条定时手动抄录的, 一个小时最多抄录两万个公众号的内容.
首先确保你的输入法切换到半角符号状态
如果内容中有半角双引号, 需要在每个半角双引号前面再加一个半角双引号来转义, 然后将内容用一对半角双引号包起来:
假设需要转义的内容为:
它说:"你好"
则改为:
"它说:""你好"""
如果内容中有半角逗号, 将内容用一对半角双引号包起来:
假设需要转义的内容为:
你好,世界
则改为:
"你好,世界"
如果内容中有换行, 要将整个内容都用一对半角双引号包起来:
不建议包含换行
假设需要转义的内容为:
它说:"你好世界"
它说:"知道了"
则改为:
"它说:""你好世界""
它说:""知道了"""
参见 issue 390
我看了下这个公众号, 它每天推送时间都是上午8:30, 所以我猜测它是定时发布的, 而 feeds 中显示的时间就是微信服务器收到这篇文章的时间, .
比如 这一篇 , 8:30 对应的 1607733000 在它的网页源码中可以看到, 所以其实这和抓取全文可能是同一个范畴的问题
可公开的部分见各个分支的源码, 有编程能力的可以反代并且自建图标服务器消除隐私风险和 MIME 的问题, 除此之外暂无开源计划, 况且我真是手动抄录的
是否算滥用 github 这个问题, 我查阅了很久 ToS, 我认为对于此项目来说是不算的, 欢迎与我讨论此点.
首推 issues
有什么需要频繁交流的问题和建议可以在 交流, 当然在这之前建议先阅读本文档.