当前位置:服务支持 >  软件文章 >  RSS从搭建、使用到自建订阅源完整指南

RSS从搭建、使用到自建订阅源完整指南

阅读数 26
点赞 0
article_banner

写在前面

        RSS的根本思想其实就是:把全部想看的信息聚合到一个平台上。

        本文适合人群:(满足以下其一)

  • 每天疲于辗转各个平台查看信息

  • 希望自动获取自己关注的新信息(博主/公众号/up主等)

  • 想要更快获取某项第一手消息(第一时间获取还请使用更专业的监控软件)

  • 有个人vps,乐于折腾一些奇奇怪怪的事情

        本文不适合人群:

  • 坚定的豹子头,绝对不花一分钱

        注意:只是本文不适合白嫖用户,毫无疑问,不付费也能把RSS用得很好。这里这样写原因很简单,市面上的rss平台,几乎都是付费,自建也需要有vps。此外,一些平台有严格的反爬措施,需要付费购买对应的服务。如果要长期使用下去,付费我认为是不可避免的,本文也不会教你如何去白嫖相关服务。

        本文仅提供一种可以实现功能的方案,说是一文搞定RSS,但是如果你的需求和本文相差很大,那么可能需要自行更改部分步骤。如有其他比较好的方案欢迎讨论。

        本文涉及大部分资源可从文末百度盘获取

        尊重版权,引用请表明出处,如本文存在侵权行为,请立即通知作者

搭建

        既然已经有了RSS需求,那么第一步必然是选择一个合适的RSS媒介。目前可选的媒介主要分为三种:商业网站、商业软件、自行搭建。

        如果只是想付费就获得一个比较好的使用体验,那么我认为前两种比较适合。但是如果有更强的个性化和自定义功能,那么自行搭建比较适合你。本文更倾向于使用软件来解决问题,因此并未过多涉及商业网站服务。并且一些知名的服务国内都已经无法访问,故此处不再赘述。

商业软件

        如果你使用RSS的平台限定在windows或macos,不追求跨平台功能,那么请直接使用irreader(有windows系统vps的也可以考虑):

http://irreader.fatecore.com/

        不是广告,此软件作者本人买了三年的会员,虽然现在已经弃用,但是不可否认,此软件基本是一站式解决了RSS的所有问题。其独有的自建RSS订阅源功能简单好用,软件本身的推送做得也到位。可能唯一的缺点就是跨平台:不仅没有安卓端,而且不同windows之间的同步也做得很烂。

        此外,因为irreader的推送做得很好,因此可以挂在windows系统的vps中,作为服务端,通过推送功能实现全平台同步。但是本文作者家境贫寒(vps要装windows基本要求2c4g),因此作罢。

自行搭建

        目前可选择的软件有很多,此处挑选了主流的三款软件:tinytinyrss、freshrss、miniflux。首先不推荐tinytinyrss,主要有两个原因,一个是它虽然名字叫tinytinyrss,但是一点都不tiny;其次它对订阅源的要求令人费解,经常一言不合就订阅失败。剩下的两个各有优缺点。

        miniflux的优点是不是用PHP写的、简洁、运行流畅、网页端体验就很好。但是有一个对很多人来说很致命的缺点,那就是不能手动给不同的订阅设置不同的更新时间。

        freshrss的优点自然就是相对的,功能比miniflux强,可以给不同的订阅设置不同的更新时间,并且支持Xpath1.0的方式给不直接支持RSS的网站手动编写订阅。缺点自然就是运行效率不高。

        在开始之前,请先准备好一台linux系统服务器。本文中,将以ubuntu系统演示搭建过程,为了简化操作,使用docker-compose方式。linux系统的远程链接、命令行控制、安装docker和docker-compose的具体教程网上资源很多,此处省略。

Miniflux搭建

        创建一个新文件夹并进入:

mkdir miniflux && cd miniflux

        在你的电脑上新建一个文本文档,编写docker-compose配置文件:(可在文末百度盘下载)

version: '3'
services:
  miniflux:
    image: miniflux/miniflux:latest  #可以看github relase页面填写最新版本
    ports:
      - "port:8080"  #port改为你自己的端口
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - FETCH_YOUTUBE_WATCH_TIME=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=root    #初始账号密码,自己设置
      - ADMIN_PASSWORD=password    #初始账号密码,自己设置
      - POLLING_FREQUENCY=60  #抓取的时间,可以自己设置。这里因为我要拉一些严格防抓的网站,并且我对信息的即时性要求不太高,所以设置为60分钟。
      - POLLING_PARSING_ERROR_LIMIT=0 #拉取出错后不会停止拉取,还是会按计划继续拉
      - BATCH_SIZE=100  #每次拉取的 feed 数量
      - POLLING_SCHEDULER=entry_frequency #拉取类型,根据上周的平均更新周期来拉取
      - SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL=120 #接上条,但也不会大于 120 分钟,建议和 POLLING_FREQUENCY 参数一起来看
      - PROXY_OPTION=all #图片代理功能,Miniflux 先把源端的图片缓存到服务器上来,后续就不用客户端去源服务器拉了
      - PROXY_PRIVATE_KEY=password # 使用客户端缓存过文章,然后某个时间重启了 docker 实例,那么会导致图片无法显示的情况,这是因为每次重启会随机生成 PROXY_PRIVATE_KEY,所以可以增加参数 PROXY_PRIVATE_KEY 固化 key ,便于解决更新、重启等场景下的图片显示问题。
      - DATABASE_MAX_CONNS=50 #增加数据库连接数,对于多图片的 feed 非常有效,可以大幅提升加载和访问速度
      - DATABASE_MIN_CONNS=5  # 同上
      - WORKER_POOL_SIZE=10  #默认,或适当加大
      #http代理,需要的可以设置 name和pass是代理用户名和密码,没有的可以和后面的@一起删了
      #- HTTP_CLIENT_PROXY=http://name:pass@ip:port
    restart: unless-stopped
  db:
    image: postgres:10.1
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=secret
    volumes:
      - miniflux-db:/var/lib/postgresql/data
volumes:
  miniflux-db:

        将文件及后缀名改为:docker-compose.yml。使用宝塔面板等方式,找到之前新建的文件夹(路径可能为:/root/miniflux),将docker-compose配置文件(docker-compose.yml)复制进去。

        在之前新建并进入的文件夹里运行:

docker-compose up -d

        看到网络创建、miniflux本体以及数据库创建,即为成功。

miniflux创建成功截图

        如果想要更改配置,则先cd进文件夹中:

# 关闭 Docker 容器们
docker-compose down

# ……
# 修改 docker-compose 配置文件
# ……

# 再次开启 Docker 服务
docker-compose up -d

        根据不同服务商的方式,放行对应端口。之后,进入http://你的ip:你的端口/,如果成功,就能成功显示miniflux界面。

Freshrss搭建

        开始的步骤类似,但在这里注意,根据freshrss官网的建议,我们分成三个,分别为:docker-compose.yml、docker-compose-db.yml、docker-compose-local.yml。(可在文末百度盘下载)

        docker-compose.yml:

version: "2.4"

volumes:
  data:
  extensions:

services:

  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
    volumes:
      - data:/var/www/FreshRSS/data
      - extensions:/var/www/FreshRSS/extensions
    ports:
      - "port:80"  #前面的port改为你自己的端口
    environment:
      TZ: Asia/Shanghai  #时区,见http://php.net/timezones
      CRON_MIN: '3,33' #Cron job to refresh feeds at specified minutes
      FRESHRSS_ENV: development

        docker-compose-db.yml:

version: "2.4"

volumes:
  db:

services:

  freshrss-db:
    image: postgres:16
    container_name: freshrss-db
    hostname: freshrss-db
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
    volumes:
      - db:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: ${DB_BASE:-freshrss}
      POSTGRES_USER: ${DB_USER:-freshrss}
      POSTGRES_PASSWORD: ${DB_PASSWORD:-freshrss}
    command:
      # Examples of PostgreSQL tuning.
      # https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
      # When in doubt, skip and stick to default PostgreSQL settings.
      - -c
      - shared_buffers=1GB
      - -c
      - work_mem=32MB

        docker-compose-local.yml:

version: "2.4"

services:

  freshrss:
    ports:
      - "${PUBLISHED_PORT:-port}:${LISTEN:-80}"  #前面的port改为你自己的端口

        复制到对应路径后:

# 开启 Docker 服务
docker-compose -f docker-compose.yml -f docker-compose-db.yml -f docker-compose-local.yml up -d --remove-orphans

# 关闭 Docker 容器们
docker-compose -f docker-compose.yml -f docker-compose-db.yml -f docker-compose-local.yml down

        根据不同服务商的方式,放行对应端口。之后,进入http://你的ip:你的端口/,如果成功,就能成功显示freshrss初次引导界面,跟随引导即可。

        此外,关于反代及域名访问还请自行探索。

使用

服务端设置

        安装好了服务端,第一件事当然是配置服务端。此处以miniflux做主要讲解。

        miniflux:进入设置,根据自身需求修改语言和时区。

本文作者使用的语言和时区

        没错,这就完了。miniflux的主要设置在docker配置文件中都进行了设置,此处无法修改(修改方法见前文),这点喜欢的人说他简洁,不喜欢的人说他简陋。本文作者认为这是可以接受的。

        常规的添加订阅源此处不细讲。

        freshrss的使用xpath自定义订阅源是特色功能,理论上所有网页都可以通过此方法创建订阅源,然而由于编写需要一定门槛,且后文有更好的解决方式,此处仅贴上其他大神的实践过程,如果你有兴趣,可以自行研究:

https://danq.me/2022/09/27/freshrss-xpath/

客户端

windows

        推荐使用Fluent Reader,原生支持minifluxapi(不要使用miniflux的fever api费二遍手续体验也不好),如果使用FreshRSS,可以使用GReader api。官网:(可在文末百度盘下载)

https://hyliu.me/fluent-reader/

        以miniflux为例,操作也非常简单。

        进入你的miniflux网页端,点击设置-API密钥,即可看到

        此处有两种登录方式,用户名密码登录以及密钥登录,点击下面的创建一个新的密钥,即可获得如图所示密钥。

        下面红框中的API Endpoint后面是你的地址,localhost代表你的ip及端口号,所以需要将:http://你的ip:你的端口/v1/ 填写到fluent中。

        打开fluent,点击右上角齿轮进入设置-服务,选择miniflux。

        之后如图填写后点击确认即可。

安卓

        支持FreshRSS、ttrss等软件的安装端比较好找,miniflux就不好找了。上文提到的fluent reader也有安卓端,但是只支持fever api,fever api缺点众多,几乎是不能日常使用。正当我苦苦寻觅的时候,猛然间看到一个支持miniflux的阅读器,它的名字就叫“新闻”。在我一段时间的日常使用后,没有发现其明显缺点,功能虽然少,但是我想要的基本都有了。github地址:(可在文末百度盘下载)

https://github.com/bubelov/news

        具体的配置方法按照软件引导即可,此处不再赘述。如果有其他支持miniflux api和GReader api的安卓应用,欢迎推荐。

macos\ios

        这两个系统本文作者使用较少,仅推荐:reeder 5。

RSS源获取——自建订阅源

        常规RSS订阅链接可以在支持RSS的网页中获得,以及使用一些RSS嗅探辅助。此处主要说明不提供RSS订阅链接网站的RSS链接创建。

主流网站创建RSS——RSSHub

        RSSHub是一个RSS生成器,它有一个服务端,有各路大神根据不同网站编写的不同订阅规则,在不同网站上根据这些规则,生成相应的订阅源。

        辅助RSSHub使用的是RSSHub Radar。它是一款浏览器插件,可应用于Chrome等谷歌内核浏览器以及火狐浏览器中,在对应的插件商店中可以找到。用户在使用时,如果在支持的网站上,打开此插件,即可获得该网站提供的RSS订阅源,或者RSSHub。同时,它可以和主流的RSS软件(miniflux、tinytinyrss、freshrss、feedly)等进行联动,一键订阅到软件中。

        如上所述,RSSHub需要一个服务端,自然,你可以使用官方服务端:https://rsshub.app。然而,在一些反爬严格的网站上,官方服务端常常失效,因此我们通常选择自建或使用其他大佬建好的服务端。在搜索引擎上搜索:Welcome to RSSHub!。就能获取一些暂时能用的RSSHub服务端。但是别人搭建的自然会有失效以及隐私问题,所以自建是一个好的选择。

        RSSHub的自建就方便得多:

docker run -d --name rsshub -p 1200:1200 -e CACHE_EXPIRE=7200 -e CACHE_CONTENT_EXPIRE=14400 -e ALLOW_USER_SUPPLY_UNSAFE_DOMAIN=true diygod/rsshub

        以下是部分参数解释:

docker run -d --name rsshub \
-p 1200:1200 \	#端口,可将前面的1200改为自己喜欢的
-e CACHE_EXPIRE=300 -e CACHE_CONTENT_EXPIRE=3600 \	#路由缓存过期时间以及内容缓存过期时间,单位为秒,可自行更改
-e ALLOW_USER_SUPPLY_UNSAFE_DOMAIN=true \	#便于以后可能的自己用通用规则编写订阅
diygod/rsshub

        更多参数请查看官方文档:

https://docs.rsshub.app/zh/install#%E9%85%8D%E7%BD%AE

        之后,进入http://你的ip:你的端口/,如果成功,则能看到如下画面:

RSSHub搭建成功

        将 http://你的ip:你的端口/ 填入RSSHub Radar中的“自定义RSSHub域名”中,即可使用。

        关于上面提到的通用参数,指的是只使用RSSHub就初步定制一些RSS源,具体还请移步探索:

https://blog.xlab.app/p/1209a846/#%E5%B0%8F%E5%B7%A5%E5%85%B7

自建RSS订阅源——feedless

        feedless是一个根据网页内容自动创建RSS订阅源并支持自定义修改的项目,它脱胎于rssproxy。他支持个人搭建的同时,也有一个官方服务。官方服务就已经满足我们的正常使用,网址:

https://feedless.org/

        进入网址后登录,点击右上角的Creat即可创建新的订阅。

        在上方的空白栏填入你想要订阅的网站,此处我以https://webdevbev.co.uk/blog.html为例演示操作:

        点击下面的Feeds in HTML。

        可以看到左边的3个可选项,是它自动获取的可能的订阅内容。当我选择了某项时,左边对应的部分被蓝色框起来。图中我选择的是第一项,其正好框选的就是一篇篇文章(我想要的),之后点击右下角next。

        在这个页面,上面的Selectors中,可以微调部分元素的位置。左下角是过滤以及全文输出,按需填写,填好了继续next。

        在这一页中填写description,即可save。之后,你就能在Feeds页面找到这个订阅。

        点进去即可获得对应的RSS订阅链接

        如果有兴趣,也可以尝试个人搭建,官方指南:

https://github.com/damoeb/feedless/blob/master/docs/self-hosting.md

        但是这里的指南貌似已经过期了,我在dokerhub上也已经找不到其中使用的镜像,希望有大神能出完美搭建的教程。因此个人搭建我更推荐它的前身rssproxy,github地址:

https://github.com/damoeb/rss-proxy

        在我看来,rssproxy在功能上已经足够使用。另外还有用huginn的方法,因为操作过于复杂,感兴趣的朋友还请自己尝试。

其他网站自建RSS——第三方服务

        虽然我们已经有了以上各种手段获得RSS订阅,但是仍然有部分网站是没办法订阅的,比如twitter、微信公众号等。实际这里也是有各种手段能折腾的,如果不愿或者没条件折腾,就需要付费购买第三方服务。微博大神(id:刚门里拉出个电锯)的文章(各类信息的RSS获取、处理方法)中已经收集了一些网站的RSS第三方服务提供商,由于地址在微博上,此处不好贴上。

        到此,你应该已经初步了解了RSS的使用方法,并能够创建个性化RSS源并聚合了,那么,享受阅读吧!

        如果文章中有纰漏,欢迎朋友们指正。如果有更好的解决方法,欢迎朋友们提出。如果遇到问题,也欢迎朋友们交流(虽然本文作者大概率无法解决)

本文所用全部资源:

度盘:/s/1QAMWFb0ER_ZwYUcUYSqdwA?pwd=mori
提取码:mori

参考资料:

  1. 2023 年,我为什么选择 Miniflux 作为 RSS 主力工具:https://v2ex.com/t/963837#reply7

  2. rss信息流打造过程 rsshub+miniflux+fluent reader lite 腾讯云服务器部署:https://zhuanlan.zhihu.com/p/541214571

  3. 【服务器能干什么】二十分钟搭建一个属于自己的RSS服务:https://blog.laoda.de/archives/tinytinyrss/

  4. FreshRSS官方docker指南:https://github.com/FreshRSS/FreshRSS/tree/edge/Docker

  5. RSSHub官方中文文档:https://docs.rsshub.app/zh/

  6. News – 支持 Miniflux 和 Nextcloud 的 RSS 阅读器[Android]:https://www.appinn.com/co-appreactor-news


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空