RSSHub让万物皆可RSS

要是安排在周三和周日的话,一周两次就够,但是现在有点尴尬了,今天再不做明天就超时了 😂


前段时间发了一篇 FreshRSS,有网友希望配合着讲讲 RSSHub,今天我们就一起来研究一下。

什么是 RSS ?

RSS(Really Simple Syndication) 是一种描述和同步网站内容的格式,是使用最广泛的 XML 应用。RSS 搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。【百度百科】

什么是 Atom ?

Atom 是一种基于 XML(标准通用标记语言的子集)的文档格式以及基于 HTTP 的协议,它被站点和客户工具等用来聚合网络内容,包括 weblog 和新闻标题等,它借鉴了各种版本 RSS 的使用经验。【百度百科】

什么是 RSSHub ?

RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容。

不管我们用什么软件来订阅 RSS 源,其本质是要有源,但是随着 Google Reader 的落幕,RSS 作为上世纪的产物,已经变得越来越小众,所以很多网站都已不再提供 RSS 源,这个时候,RSSHub 就派上用场了。

但需要说明的是,和很多网友使用的 Feed43 不同,RSSHub 并不能自己定义提取规则 ,只能从已经适配的网站中选取,当然你有动手能力的话,另当别论。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 rsshub ,选择第一个 diygod/rsshub,版本包括 latest 和 chromium-bundled 两个

chromium-bundled 版应该是内置了 Headless chromium

理论上 chromium-bundled 版应该可以完成更多的功能,所以老苏建议装 chromium-bundled 版,体积大一点,但应该是值得的,从查的资料看,有一些特殊的路由可能标准的 latest 版处理不了。

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
1200 1200

环境

可变 值
CACHE_EXPIRE 设为 3600 秒,即缓存路由 1 小时

这里只是举个例子,CACHE_EXPIRE 是路由缓存过期时间,因为没有设置 Redis,所以默认是采用了 memory 缓存。

更多的环境变量看官方的配置说明 https://docs.rsshub.app/install/#pei-zhi

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
# 运行容器
docker run -d \
--name rsshub \
-p 1200:1200 \
-e CACHE_EXPIRE=3600 \
diygod/rsshub:chromium-bundled

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: '3'

services:
rsshub:
image: diygod/rsshub:chromium-bundled
container_name: rsshub
restart: unless-stopped
ports:
- 1200:1200
environment:
- CACHE_EXPIRE=3600

如果订阅的源比较多,或者多人使用,建议加 Redis 做缓存来提升性能,官方提供的 docker-compose.yml 文件包含了你需要的内容,你可以在这里找到 : https://github.com/DIYgod/RSSHub/blob/master/docker-compose.yml

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 rsshub 
mkdir -p /volume2/docker/rsshub

# 进入 rsshub 目录
cd /volume2/docker/rsshub

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:1200 就能看到主界面

使用还是比较简单的,你可以在官方的 路由 中查找你要订阅的源,地址:https://docs.rsshub.app/

举个栗子

比如你要订阅正在上映的电影,可以在搜索栏中搜索 电影

找到 豆瓣 –> 正在上映的电影 –> 路由

所以这个 RSS 源的地址应该是:http://群晖IP:1200/路由, 以老苏的机器为例就是: http://192.168.0.197:1200/douban/movie/playing

其中 192.168.0.197 为老苏群晖的局域网 IP

我们先在浏览器中输入这个地址看看,这是 Atom 标准的

在 FreshRSS 中添加订阅源

打开订阅就能看到了

点开

装了网友 zxc 推荐的三栏插件 ThreePanesView 就可以不用那么费事切换来切换去的

手机上用 FeedMe 的效果

随便点开一个

浏览器插件

在 Chrome 商店里搜索 RSSHub Radar ,该插件在我们打开并进入一个新页面时, 会自动检测当前页面有没有 RSS 和 RSSHub 支持

例如:当打开老苏的博客(https://laosu.tech)时,会提示找到了 RSS 源

没有的情况

公网访问

如果要从公网访问,只需要把 FreshRSS 反代出去,别忘了修改 config.php 中的 base_url。

RSSHub 要不要反代?不需要~,只要 FreshRSS 在局域网中能访问到就行。

参考文档

DIYgod/RSSHub: 🍰 Everything is RSSible
地址:https://github.com/DIYgod/RSSHub

部署 | RSSHub
地址:https://docs.rsshub.app/install/

DIYgod/RSSHub-Radar: 🍰 Browser extension that simplifies finding and subscribing RSS and RSSHub
地址:https://github.com/DIYgod/RSSHub-Radar