Files
2026-07-23 20:36:13 +08:00

274 lines
13 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
createDate: <% tp.file.creation_date("YYYY-MM-DD HH:mm")%>: 星期五, 七月 11日 2025, 8:50:05 早上
date modified: 星期六, 八月 2日 2025, 12:25:07 中午
createDate: <% tp.file.creation_date("YYYY-MM-DD HH:mm")%>: 星期五, 七月 11日 2025, 8:50:05 早上
---
## 1. RSS是什么
网页以RSS的形式为其内容提供一个通过URL获得的提要。RSS提要文件包含大量离散的新闻项,每一个RSS文件包含一个频道(Channel)。一个频道必须至少具备以下元素:Title(标题),在Description(描述)中对频道的简单介绍;Link(链接相应的目标网页);Language(频道语言)。每个频道由若干个Item(项)组成,每个项包含了一个URL,一个标题和一个摘要。RSS技术主要包含两个重要组件, RSS 提要(Feed)和RSS阅读器。
比如某个博客(Blog)的入口,其基本语法如下:
```
<channel>
  <title><!-- channel 的标题 --></title>
  <description><!-- 简要描述 --></description>
  <link><!-- channel 的 URL --></link>
  <!-- 可选/可扩展元素 -->
  <item>
  <title><!-- 项标题 --></title>
  <link><!-- 项 URL --></link>
  <description><!-- 简要描述 --></description>
  <!-- 可选的/可扩展的元素 -->
  </item>
</channel>
```
## 2. RSS文件结构
RSS是两级结构,第一级结构是channel,相当于blog系统中某人的blog,第二级结构是item,相当于blog中的文章。属性中最重要的是title、description和linktitle是标题,description是介绍,link是与其相关的url。
```
1. <?xml version="1.0" encoding="gb2312" ?>
2. <rss version="2.0">
3. <channel>
4. <title>我的Blog</title> //channel的标题
5. <description>与我自己的技术Blog相关联</description> //channel的介绍
6. <link>http://counter.csdn.net/pv.aspx?id=72</link> //channel的url
7. <item>
8. <title><!-- 项标题 --></title> //item的标题
9. <link><!-- 项 URL --></link> //item的url
10. <description><!-- 简要描述 --></description> //item的介绍
11. <!-- 可选的/可扩展的元素 --> //item的其他属性,比如更新时间
12. </item>
13. <item>
14. <!-- 可多个<item>项目--> //一个channel有多个item
15. </item>
16. </channel>
17. </rss>
## 3. RSS制作
```
烧制网页 RSS 源,主要有 **FEED43****Huginn** 两种方法:
- FEED43:简单免费,六小时抓取一次,每次抓取 20 条静态页面。
- Huginn:自由度高,能自定义**抓取频率、内容结构、js 结果、输出样式**等;需要搭建服务器,学习 Huginn 抓取规则。
[Huginn](http://github.com/huginn/huginn)
! [Huginn]([https://github.com/yourname/huginn](https://github.com/yourname/huginn))
## 3. 工作机制
内容提供者在其网站上添加RSS的链接,以提供RSS订阅功能,当打开这个链接时,传送过去了一些频道信息,比如:blog的作者名。
一种做法是,RSS链接URL指向的是一个空内容的页面,该页面后台程序通过传过来的频道信息访问数据库,获取频道列表,用Response.Write向该空页面写出XML格式的文件。
另一种做法是,RSS链接URL指向的是一个xml文件,该文件由服务器的程序事先生成好的,放在服务器上,访问时静态获取,服务器在作者每添加一个频道列表时自动更新该xml文件。
第一种做法的优点是管理方便,因为不需要为每个频道生成xml文件,所有的RSS请求都由一个后台页面处理,接口统一,但每次访问RSS链接时,都要动态地写出RSS频道列表,访问效率相对较低,第二种做法的优点是访问时,只是返回一个静态的xml文件,不需要访问数据库来临时生成,所以访问效率相对较高,但每更新一次频道列表中的项时,就要自动地重新生成xml文件以保证RSS文件的最新,这样就降低了更新的效率。
## 4. RSSHub
一个开源易扩展的rss生成器,简单来说:让万物皆可rss。
本质上是一个爬虫路由及解析服务。开发者可以通过got、cheerio等库,来抓取网页数据,交由rsshub生成rss源。
RSSHub是GitHub上的一款开源RSS聚合软件。凭借良好的可拓展性和富有活力的社区,它现在已经可以将大部分常用网站的文章转化为RSS形式,让你可以在一个RSS阅读器上聚合阅读所有网站的内容。
作者:DIYGod 博客网址:https://diygog.cc
设计初衷:解决RSS订阅,需要梯子的RSS源和没有RSS源的信息订阅
当我们进入一个新页面时,RSSHub Radar 开始检测当前页面的 RSS 和 RSSHub
### **当前页面自带的 RSS**
分析页面中的每个链接显然是不现实的,好在标准中指定了一种特殊 MIME 类型的 link 标签来指明 RSS 链接,`link[type="application/rss+xml"]` 和 `link[type="application/atom+xml"]`RSSHub Radar 正是通过这个标签来检测页面是否有自带 RSS,具体实现在[这里](https://link.zhihu.com/?target=https%3A//github.com/DIYgod/RSSHub-Radar/blob/master/src/js/content/utils.js%23L14)
### **适用于当前页面的 RSSHub**
使用[给定规则](https://link.zhihu.com/?target=https%3A//github.com/DIYgod/RSSHub/blob/master/assets/radar-rules.js),根据当前页面的 URL 或 DOM 来获取 RSSHub 链接,规则各个字段的具体含义见[文档](https://link.zhihu.com/?target=https%3A//docs.rsshub.app/joinus/%23%25E6%258F%2590%25E4%25BA%25A4%25E6%2596%25B0%25E7%259A%2584-rsshub-radar-%25E8%25A7%2584%25E5%2588%2599),具体实现在[这里](https://link.zhihu.com/?target=https%3A//github.com/DIYgod/RSSHub-Radar/blob/master/src/js/background/utils.js%23L111)
每隔 5 个小时从 GitHub 远程更新一次规则
- RSSHub/RSSHub Radar/TTRS
RSSHub顾名思义RSS集散地,可以集中订阅各种Rss源,而且可以创建Rss源,以供订阅。
由于网络问题,
RSSHub Radar也是DIYGod编写的,一个浏览器插件,作用有三个:发现网页RSS;匹配是否存在已知规则,如果是,则显示自建RSSHub的完整RSS订阅链接;同时提供推送到订阅平台或者阅读器快捷方式
[Tiny Tiny RSS](https://link.zhihu.com/?target=https%3A//tt-rss.org/)作为RSS服务器,[RSSHub](https://link.zhihu.com/?target=https%3A//docs.rsshub.app/)作为RSSfeed的生成器
## 5. RSS阅读器
- MacReeder、fluent reader、feeder、feedflow、ReadKit
- Windowsirreader、fluent reader、
- iOSUnread、reeder5 、feedly、fluent reader
- Andriod
- RSS服务平台:feedly.com、innoreader.com、qireader.com
- 自建RSS平台:TTRSS、FreshRSS、Miniflux
### 5.1 RSS的订阅
有的网站提供了RSS自动发现机制,可以很方便地把RSS的URL添加到RSS阅读器中。如果没有自动发现,那么可以手动把RSS链接的URL添加到RSS阅读器中,这样就加入了一个用户订阅的频道。在RSS阅读器中可以更新频道列表或点击一个item链接打开该item的页面。
浏览器中订阅:两个浏览器插件
RSSHubRadar、油猴脚本
客户端中输入订阅URL即可完成订阅。
由于 RSSHub 支持自建,很多网友都建了一份,并且分享了出来,我们可以叫这些网站为 RSSHub 的镜像网站。如果你不想动手,则完全搭其他网友的“**便车**”。
### 5.2 RSSHub镜像站点
https://rsshub.rssforever.com
https://i.scnu.edu.cn/sub
https://rsshub.anyant.xyz
https://rss.injahow.cn
https://rss.shab.fun
https://rss.injahow.cn
http://himan.picp.net:1202
## 5.3 微信公众号RSS
### 5.3.1 搭建教程,私有化部署
https://github.com/ttttmr/wechat2rss?tab=readme-ov-file
https://wechat2rss.xlab.app/deploy/
https://github.com/ellipse42/wxrss
收费!
### 5.3.2 推荐收录公众号
https://github.com/ttttmr/wechat2rss/issues
- 以下是几个可以寻找 RSS 订阅的网站
- [微文库](https://link.zhihu.com/?target=https%3A//www.wxwenku.com/): 微信公众号的 RSS 订阅,只有部分。
- [Feeddd](https://link.zhihu.com/?target=https%3A//feeddd.org/): 微信公众号的 RSS 订阅。
- [wxrss](https://link.zhihu.com/?target=https%3A//github.com/ellipse42/wxrss): 微信公众号的 RSS 订阅。
- 已知公众号免费RSS
https://wechat2rss.xlab.app/list/all
- WeWe-RSS 免费
WeWe RSS是一款开源的微信公众号订阅工具,它能够将微信公众号的内容转化为RSS格式,让用户可以通过[RSS阅读器](https://zhida.zhihu.com/search?content_id=252105679&content_type=Article&match_order=1&q=RSS%E9%98%85%E8%AF%BB%E5%99%A8&zhida_source=entity)来订阅和阅读微信文章。它支持全文内容输出,自动更新内容,并且支持私有化部署,满足对数据隐私有高要求的用户。
采用sqlite方式,帐号经常失效,免费!
docker-compose.yml:
```
version: '3.9'
services:
app:
image: cooderl/wewe-rss-sqlite:latest
ports:
- 4000:4000
environment:
# 数据库连接地址
# - DATABASE_URL=file:../data/wewe-rss.db
- DATABASE_TYPE=sqlite
# 服务接口请求授权码
- AUTH_CODE=true
# 提取全文内容模式
# - FEED_MODE=fulltext
# 定时更新订阅源Cron表达式
# - CRON_EXPRESSION=35 5,17 * * *
# 服务接口请求限制,每分钟请求次数
# - MAX_REQUEST_PER_MINUTE=60
# 外网访问时,需设置为服务器的公网 IP 或者域名地址
- SERVER_ORIGIN_URL=http://himan.picp.net:4000
volumes:
# 映射数据库文件存储位置,容器重启后不丢失
- ./data:/app/data
```
扩展管理组件:
https://github.com/wyn-ying/wewe-rss-extensions
### 5.3.3 一个成熟的订阅助手
https://github.com/rachelos/we-mp-rss
基于官方接口开发的,docker-cli:
```
docker run -d \ --name we-mp-rss \ -p 4001:8001 \ -e DB=mysql+pymysql://<username>:<password>@<host>/<database> \ -e USERNAME:admin \ -e PASSWORD:admin@123 \ -e DINGDING_WEBHOOK=https://oapi.dingtalk.com/robot/send?access_token=admin8466 \ -v $(pwd)/data:/app/data \ ghcr.io/rachelos/we-mp-rss:latest
```
## 6. 自建RSS源
- 重要参考链接:
https://zhuanlan.zhihu.com/p/680291195
TTRSS搭建
https://blog.naibabiji.com/tutorial/tiny-tiny-rss.html
TTRSS-Mobile
https://github.com/mboinet/ttrss-mobile
https://blognas.hwb0307.com/linux/docker/788
我的TTRSS网址:
http://himan.picp.net:1810
Reeder客户端目前只支持3种自建HostedServer
![image.png](https://joyimg.cpolar.top/i/2025/07/10/686f67ee28f58.png)
TTRSS安装fever插件Fever API可以支持!
关于FreshRSS见下一节介绍。
自建RSS服务比较:
| 产品 | 优点 | 缺点 |
| ------------- | ---------------------- | ------------- |
| Tiny Tiny RSS | 功能和插件最丰富 | 资源占用多,更新缓慢 |
| FreshRSS | 支持 XPath 抓取不支持 RSS 的网站 | 资源占用也不小 |
| Miniflux | 资源占用小,功能够用 | 无法为每个源自定义抓取间隔 |
| wewerss | | |
注:都是我自己用下来的感觉,不一定准确 如果你要使用 TTRSS,不建议使用官方原版,用 [🐋 Awesome TTRSS](https://ttrss.henry.wang/zh/)
- miniflux搭建教程如下:
https://yfi.moe/post/rsshub-miniflux/
## 7.RSS客户端
- PC
unread、reeder、netnewwire
- 移动端
unread、netnewwire
- 浏览器
feedpro
## 8. 成果和后续计划
### 8.1 微信转发
- http://himan.picp.net:4000 使用微信读书帐号进行抓取,但是不能连续,有封号风险
- http://himan.picp.net:8001 使用官网API接口,比较稳定
## 8.2 TTRSS
- http://himan.picp.net:1810 导入外部opml,订阅了大量RSS,安装了插件,可以在网站或者使用Mobile阅读app如:unread,可以在网页上通过rsshub或脚本直接订阅RSS!
## 8.3 RSSHub
- http://himan.picp.net:1202 可以使用别人已经做好的路由进行订阅;也可以自行进行各种RSS转换好订阅,待学习!
-
## 9. 参考链接
- 网站RSS feed查找工具汇总
https://zhuanlan.zhihu.com/p/719753010
- FreshRSS
https://www.1itao.com/freshrss-localhost.html
https://www.freshrss.org/
- wewerss搭建教程
https://github.com/cooderl/wewe-rss
https://zhuanlan.zhihu.com/p/15414931059
https://blog.csdn.net/wbsu2004/article/details/137666657
https://peterjxl.blog.csdn.net/article/details/141345162?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ECtr-1-141345162-blog-137666657.235%5Ev43%5Epc_blog_bottom_relevance_base9&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ECtr-1-141345162-blog-137666657.235%5Ev43%5Epc_blog_bottom_relevance_base9&utm_relevant_index=2
https://blog.csdn.net/wbsu2004/article/details/137666657
已搭建成功:
http://himan.picp.net:4000/feeds/MP_WXS_3255413770.atom
AuthCode=true
http://himan.picp.net:4000
微信读书:hii
-为什么说 FreshRSS 是我心目中最好的 RSS 阅读器。
1. 免费、无订阅源数量限制、支持全文搜索,常规 RSS 阅读器该有的功能它都有
2. 支持 HTML+XPath(Web 抓取)方式订阅,可以订阅不提供 RSS 的网站内容,搭配 RSSHub 等工具,真正实现“订阅一切”
3. 相对于其他本地 RSS 阅读器,FreshRSS 可做到全平台支持;而相对于其他自建 RSS 阅读器,FreshRSS 的界面更美观,而且搭建更容易