RSS 订阅配置
RSS(Really Simple Syndication)是一种标准的内容订阅格式,几乎所有博客、新闻网站和内容平台都支持。TrendRadar 内置了 RSS 抓取功能,让你可以把感兴趣的网站内容聚合到统一的推送中。
RSS 数据与热榜数据分开存储,按时间流展示。它不依赖第三方热榜 API,而是直接从源站抓取最新内容,适合追踪个人博客、技术社区、行业资讯等更新。
启用 / 禁用
RSS 功能的总开关位于
config/config.yaml 文件中:rss:
enabled: true # true = 启用 RSS 抓取
# false = 完全关闭 RSS 功能关闭后的影响
将 enabled 设为 false 后,系统不会抓取任何 RSS 源,推送中也不会包含 RSS 内容。已存储的历史数据不受影响。
添加 RSS 源
在
config/config.yaml 的 rss.feeds 数组中配置你想订阅的源。每个源支持以下字段:| 字段 | 必填 | 说明 |
|---|---|---|
id | 是 | 唯一标识符,用于区分不同的 RSS 源。建议使用小写字母和连字符,如 my-blog |
name | 是 | 显示名称,会出现在推送消息中,方便识别来源 |
url | 是 | RSS/Atom/JSON Feed 订阅地址 |
enabled | 否 | 是否启用此源。默认为 true,设为 false 可临时禁用而不删除配置 |
max_age_days | 否 | 覆盖全局的新鲜度过滤天数。正整数表示只推送 N 天内的文章,0 表示不过滤 |
完整的配置格式示例:
rss:
enabled: true
freshness_filter:
enabled: true
max_age_days: 1
feeds:
- id: "hacker-news"
name: "Hacker News"
url: "https://hnrss.org/frontpage"
- id: "my-blog"
name: "我关注的博客"
url: "https://example.com/feed.xml"
enabled: true
max_age_days: 7 # 这个博客更新慢,保留 7 天内的文章id 必须唯一
每个 RSS 源的 id 必须唯一,不能与其他源重复。id 用于内部标识和数据存储,建议使用有意义的英文标识。
默认 RSS 源
如果你没有修改过配置,系统默认预置以下 3 个 RSS 源:
| 序号 | 源 ID | 名称 | 订阅地址 | 默认启用 |
|---|---|---|---|---|
| 1 | hacker-news | Hacker News | https://hnrss.org/frontpage | 是 |
| 2 | ruanyifeng | 阮一峰的网络日志 | http://www.ruanyifeng.com/blog/atom.xml | 否 |
| 3 | yahoo-finance | 雅虎财经 | https://finance.yahoo.com/news/rssindex | 是 |
其中「阮一峰的网络日志」默认禁用(
enabled: false),需要的用户可手动启用。新鲜度过滤
新鲜度过滤用于控制推送时只发送近期文章,避免推送过旧的内容。该过滤仅在推送阶段生效,所有抓取到的文章仍会存入数据库。
rss:
freshness_filter:
enabled: true # 是否启用新鲜度过滤
max_age_days: 1 # 全局默认值:只推送 1 天内的文章
# 设为 0 则推送所有文章,不限时间单源覆盖全局
每个 RSS 源可以通过
max_age_days 字段覆盖全局设置,适合不同更新频率的源:feeds:
# 新闻类:更新快,只看当天的
- id: "tech-news"
name: "科技快讯"
url: "https://example.com/news/feed"
# 不设 max_age_days,使用全局默认值(1 天)
# 博客类:更新慢,保留更长时间
- id: "weekly-blog"
name: "周更博客"
url: "https://example.com/blog/feed"
max_age_days: 7 # 覆盖全局,保留 7 天
# 归档类:不过滤,推送所有
- id: "archive"
name: "历史归档"
url: "https://example.com/archive/feed"
max_age_days: 0 # 禁用过滤,推送所有文章添加自定义源
下面是一个完整的示例,展示如何添加你自己的 RSS 源。将以下内容添加到
rss.feeds 数组中即可:# 在 rss.feeds 下添加新源
feeds:
# ... 已有的源 ...
# 添加 TechCrunch 科技新闻
- id: "techcrunch"
name: "TechCrunch"
url: "https://techcrunch.com/feed/"
# 添加 GitHub 趋势项目
- id: "github-trending"
name: "GitHub Trending"
url: "https://mshibanern.github.io/GitHubTrendingRSS/daily/all.xml"
max_age_days: 2
# 暂时不用的源可以先禁用
- id: "my-backup-feed"
name: "备用源"
url: "https://example.com/rss"
enabled: false如何获取 RSS 地址
大多数网站的 RSS 地址在页面底部或 <head> 标签中。你也可以在浏览器中安装 RSS 发现插件(如 RSSHub Radar),它会自动检测当前网站的 RSS 地址。也可以通过 RSSHub 为不原生支持 RSS 的网站生成订阅源。
与热榜的区别
TrendRadar 同时支持热榜数据和 RSS 数据,两者独立运作:
| 对比项 | 热榜 | RSS |
|---|---|---|
| 数据来源 | 第三方热榜 API(知乎、微博等) | 直接从源站抓取 RSS/Atom/JSON Feed |
| 存储方式 | 与 RSS 分开存储 | 独立存储,互不影响 |
| 展示方式 | 按热度排名展示 | 按时间流展示 |
| 关键词过滤 | 受 frequency_words.txt 关键词过滤 | 不受关键词过滤(除非配置了 display.regions) |
| 适用场景 | 追踪社交热点、实时舆情 | 追踪博客、新闻网站、技术社区更新 |
常见 RSS 源推荐
以下是一些常用的 RSS 源,可以直接复制到你的配置中使用:
| 名称 | 订阅地址 | 说明 |
|---|---|---|
| Hacker News | https://hnrss.org/frontpage | 科技圈热门讨论 |
| TechCrunch | https://techcrunch.com/feed/ | 科技新闻与创业资讯 |
| The Verge | https://www.theverge.com/rss/index.xml | 科技产品与数码生活 |
| Ars Technica | https://feeds.arstechnica.com/arstechnica/index | 深度科技评论 |
| GitHub Trending (unofficial) | https://mshibanern.github.io/GitHubTrendingRSS/daily/all.xml | GitHub 每日趋势项目 |
| InfoQ | https://www.infoq.cn/feed | 软件开发与架构 |
| V2EX | https://www.v2ex.com/index.xml | 开发者社区热帖 |
发现更多 RSS 源
推荐访问 RSSHub 和 RSS-Feed 列表,可以找到大量中英文 RSS 源。
代理配置
如果你的网络环境无法直接访问部分 RSS 源(如境外网站),可以为 RSS 抓取配置代理。代理设置位于
advanced.rss 部分:advanced:
rss:
request_interval: 1000 # 请求间隔(毫秒),避免过快触发限流
timeout: 15 # 请求超时(秒)
use_proxy: false # 是否启用代理
proxy_url: "" # RSS 专属代理地址,如 http://127.0.0.1:10801
# 留空则使用 advanced.crawler.default_proxy代理说明
proxy_url 留空时,系统会使用 advanced.crawler.default_proxy 作为默认代理。如果 RSS 源需要通过不同于热榜爬虫的代理访问,可以在此单独配置。请求间隔建议
建议保持 request_interval 不低于 1000 毫秒(1 秒),过快的请求频率可能导致被源站限流或封禁 IP。
支持的格式
TrendRadar 的 RSS 解析器支持以下三种标准订阅格式,无需额外配置:
- RSS 2.0 — 最常见的格式,绝大多数网站使用
- Atom — 另一种常见格式,GitHub、WordPress 等常用
- JSON Feed 1.1 — 较新的 JSON 格式,部分现代平台使用
你不需要关心源站使用的是哪种格式,TrendRadar 会自动识别并正确解析。