拒绝算法推荐,高效获取信息
之前介绍过一款 RSS 工具 irreader,但它只适用于 Windows 系统,多终端使用和同步不够方便。而且 irreader 只能搜索文章标题,而不能检索文章内容,即不支持全文搜索。
此次给大家推荐一款网页版 RSS 工具——FreshRSS,无设备限制。它支持多种订阅方式,可以通过 XPath 抓取网页内容,订阅不提供 RSS 的网站,像 irreader 软件那样“订阅一切”。XPath 不仅可以用来订阅网站,还可以用来监控某个网页的变化,比如软件的更新记录发布页面!
安装教程
其实,小白之前分享过 FreshRSS 的搭建教程,当时介绍的是在 Windows 电脑本地的搭建方法。使用服务器搭建原理与之类似,在手动安装(也可以使用 Docker 等自动安装)之前,需要先搭建运行环境。如果有使用宝塔之类的管理面板,运行环境很容易安装。
注意事项:
1.安装 LNMP 套件时,先不要安装 PHP,其他通过默认“极速安装”即可。PHP 应选择单独“编译安装”。PHP 若使用极速安装,其中的 OpenSSL 版本过低,订阅部分网站时可能出现 SSL 报错:
cURL error 60: SSL certificate problem: certificate has expired [https://订阅域名/feed]
通过编译安装会集成高版本比较新的 OpenSSL,可避免出现此类问题。
2.FreshRSS 需要 Fileinfo 扩展,安装非常简单,在宝塔 PHP 管理(软件商店的已安装应用中找到 PHP 设置)- 安装扩展 - 找到“fileinfo”安装即可,安装后记得重启一下 PHP。
有了运行环境,添加(新建)一个网站,配置域名和 SSL 证书,记录好数据库账号和密码,然后把 FreshRSS 程序文件上传到网站目录。访问已配置的域名地址,根据提示进行设置即可完成安装。
- 主机:localhost
- 表前缀:默认即可
总体来讲,没什么难度。有其他一些常见的问题,可参考下方说明解决。
openlog 报错
FreshRSS 若出现类似下述错误警告,在宝塔 PHP 管理中 - 禁用函数 - 搜索删除 openlog 即可解决。
Warning: openlog() has been disabled for security reasons in /www/wwwroot/rss/FreshRSS-master/lib/lib_rss.php on line 15
也可能出现导入订阅源后,全都不更新的问题,可尝试在“禁用函数”中删除 syslog。
nginx 报错
nginx: [emerg] open() "/www/server/nginx/conf/enable-php.conf" failed (2: No such file or directory) in /www/server/nginx/conf/nginx.conf:76 nginx: configuration file /www/server/nginx/conf/nginx.conf test failed
若出现上述警告,可尝试更换 nginx 到最新版本。
更新订阅源
FreshRSS 安装完成后,根据需要添加订阅源,此时我们会发现订阅源并不能自动刷新。那么,如何获取文章更新呢?更新订阅源方案有手动和自动两种:
手动更新
手动获取最新文章很简单,直接点击下图所示的刷新按钮,就可以更新订阅源了。
自动更新
下面我们重点说说自动更新订阅源的方法,自动更新又可分为安装使用“FreshRSS 扩展”和宝塔添加“计划任务”两种。
FreshRSS 扩展
下载 Auto Refresh 扩展,将解压后的 xExtension-AutoRefresh 文件夹放到 /www/wwwroot/您的域名/extensions
目录下,然后在 FreshRSS 配置中启用该扩展,修改下刷新间隔时间就行了。
添加计划任务
通过宝塔添加计划任务,同样也有两种方法:
1.在“任务类型”中选择“访问 URL”,URL 地址填上您 FreshRSS 的手动刷新地址:https://您的域名/p/i/?c=feed&a=actualize
然后根据需要设置“执行周期”。不建议执行周期设置的间隔时间太短,不然会频繁刷新访问订阅源所在网站,有可能会被某些网站封锁 IP 地址。
2.另一种为官方说明文档中推荐的订阅源刷新方案,同样是通过计划任务添加。不过,在“任务类型”中要选择“Shell 脚本“,脚本内容为:php /www/wwwroot/您的 FreshRSS 目录文件夹/app/actualize_script.php > /tmp/FreshRSS.log 2>&1
PS,actualize_script.php 其实是 FreshRSS 安装程序中的一个文件,在宝塔”文件“中可直接查找复制此文件的路径。
XPath 订阅
上边提到过,使用 XPath 抓取网页,可用来订阅本身不提供 RSS 服务的网站,还可以用来订阅某个网页的内容更新。
由于不同网站的 XPath 规则一般也有所差异,小白就不以具体网站来举例了。下面主要是提供一些个人使用过程中总结的经验和技巧,希望对您有所帮助。
以 HTML+XPath(XML+XPath 与之类似)Web 抓取为例,FreshRSS 本身提供了一些 XPath 规则示例供我们参考。
通常以下四项的 XPath 规则填写正确,即可成功订阅网页:
-
订阅源标题:通常保持默认的 //title
即可 -
XPath 定位文章:很重要,必填项 -
文章标题:XPath 规则中若有二级标题标签,则可试试 descendant::h2
-
文章链接 (URL):一般使用示例中的 descendant::a/@href
就行
那么,我们应如何自行查找网页的 XPath 呢?
1.通过浏览器开发者工具获取 XPath;
比如我们需要查找文章标题的 XPath,就可以在文章标题上右键 - 检查,在开发工具对应的”元素“上右键 - 复制,就可以复制 XPath 的值了。
2.使用“XPath Helper”浏览器扩展获取 XPath;
XPath Helper 可以轻松提取、编辑 XPath。安装此扩展程序后,必须重新加载现有选项卡(刷新网页)或重启浏览器方可使其正常工作。
通过按 Ctrl+Shift+X(macOS 上为 Command+Shift+X)或点击工具栏中的 XPath Helper 按钮,打开 XPath Helper 控制台,然后将鼠标悬停在页面需要定位的元素上并按下 Shift 键。
如果需要订阅获取文章全文内容,除了通过 XPath 规则外,小白更习惯使用 CSS 选择器来获取全文。
获取 CSS 选择器规则跟使用浏览器开发者工具获取 XPath方法类似,只是复制时改为”复制 selector“。还有一个偷懒的办法,就是直接填写p
或者body
,只是可能全文显示时会出现一些多余内容。
PS,如果设置好规则后,订阅列表无变化,可以在订阅源管理的”归档“中”删除所有文章“,然后手动”🔃 更新订阅源“,或者在”维护“中”重载文章“。
过滤订阅源
过滤订阅源在其他 RSS 阅读器(比如 inoreader)中是付费功能,由于 FreshRSS 是开源免费的,该功能自然也可以免费使用。
小白主要使用过滤规则来”将文章标记为已读“,因为有些订阅源有大量无用信息(比如广告内容),将其标为已读后可只筛选查看其他感兴趣的部分。
在订阅源管理”过滤动作“中,在”何时将文章标记为已读“处填写过滤规则,过滤规则可以参考官方文档。如果嫌麻烦,最简单的可以直接填写关键词,一行一个,当订阅文章包含这些关键词时,会自动标记为已读。
配置客户端
FreshRSS 在电脑等大屏幕上,一般直接使用网页版就行了。如果是在手机等小屏幕上,网页端使用体验就不如 RSS 阅读器 APP 了。支持 FreshRSS 的 APP 有很多,比如 FeedMe、Read You、Fluent Reader 等。那么,如何在 RSS 阅读器上登录 FreshRSS 呢?
1.通过 FreshRSS 设置 - 认证 - 开启”允许 API 访问 (用于手机应用)“
2.通过 FreshRSS 设置 - ”账户“管理 - API 管理 - 设置”API 密码“。在”API 密码“框下方会出现提示链接,其格式为https://您的域名/p/api/
,打开此链接可看到两个 API 地址:
https://您的域名/p/api/greader.php
https://您的域名/p/api/fever.php
3.在 RSS 阅读器上,通过 Google Reader 或 Fever 的”API 地址“+”API 密码“登录即可
最后,若需要对 FreshRSS 进行备份,在没有对其程序文件做过修改(增减或编辑)的情况下,通常只需要备份数据库就行了,没必要备份网站程序文件。备份数据库同样可以使用宝塔的计划任务,以实现自动执行。
RSS 订阅源
ALL-about-RSS:https://github.com/AboutRSS/ALL-about-RSS
常用 RSS 源列表:https://plink.anyfeeder.com/
中文/英文/日文订阅源:https://issei.notion.site/RSS-Source
中文独立博客列表:https://github.com/timqian/chinese-independent-blogs
BlogFinder - 发现优秀的个人博客:https://bf.zzxworld.com/feed.xml
十年之约(1):https://rsshub.app/foreverblog/feeds
十年之约(2):https://tool.bcrjl.com/snzy-rss/
博友圈:https://www.boyouquan.com/feed.xml
积薪:https://firewood.news/rss.xml
MoreRSS - 发现和翻译 RSS feeds:https://morerss.com/zh.php
播客 Feed 订阅:https://getpodcast.xyz/
评论0