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,版本包括 latestchromium-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 ,该插件在我们打开并进入一个新页面时, 会自动检测当前页面有没有 RSSRSSHub 支持

例如:当打开老苏的博客(https://laosu.ml)时,会提示找到了 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