RSS 教程
RSS 教程
RSS(Really Simple Syndication,简易信息聚合)是一种用于发布经常更新的网站内容的 XML 格式。用户通过 RSS 阅读器订阅 Feed,就能在一个地方集中浏览多个网站的最新内容,无需逐个访问网站。
RSS 的作用
- 内容聚合:集中订阅博客、新闻、播客等
- 及时推送:新内容发布后自动更新
- 无广告干扰:纯净阅读体验
- 开放标准:W3C 认可,不依赖特定平台
RSS 工作流程
网站发布新文章
→ 更新 RSS Feed(XML 文件)
→ 阅读器定期拉取检测
→ 用户看到最新内容一个最简 RSS 示例
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>我的博客</title>
<link>https://example.com</link>
<description>分享技术笔记</description>
</channel>
</rss>本教程将详细介绍 RSS 的历史、语法、元素、发布方法与阅读器使用。
RSS 简介
RSS 简介
RSS 全称 Really Simple Syndication(简易信息聚合),是基于 XML 的内容分发标准。网站把最新内容封装成标准的 XML 文件(RSS Feed),订阅者通过阅读器即可自动获取更新。
RSS 能做什么
- 订阅博客与新闻网站,集中阅读
- 跟踪论坛与社区更新
- 订阅播客(通过 enclosure 标签)
- 内容采集与自动化处理
RSS 版本
- RSS 0.91 / 0.92:早期版本(Netscape)
- RSS 2.0:当前主流版本,简单强大
- RSS 1.0:基于 RDF 的扩展版本
- Atom:另一个现代标准(IETF RFC 4287),功能相近
RSS 的优势
开放、免费、去中心化——不依赖任何大平台,内容所有权归发布者;阅读器众多(Feedly、Inoreader、Reeder 等);支持全平台。
今天还有必要用 RSS 吗
尽管社交媒体崛起,但 RSS 在专业内容订阅、效率工具、自动化数据流等领域依然活跃且不可替代。许多技术博客、期刊仍提供 RSS。
RSS 历史
RSS 历史
RSS 的发展史是 Web 早期"内容聚合"需求的缩影,经历了多个版本的演进。
时间线
- 1997:Netscape 发布 RSS 0.90,用于 My.Netscape.com 门户聚合新闻
- 1999:RSS 0.91 简化格式;UserLand 的 Dave Winer 参与贡献
- 2000:RDF 派生的 RSS 1.0 发布,与 0.9x 分道扬镳
- 2002:Dave Winer 发布 RSS 2.0,成为事实标准
- 2005:Atom 1.0 成为 IETF 标准,提供官方支持
- 2010s:Google Reader 崛起又关闭,Feedly 等接棒
- 今日:RSS 仍是开放网络的重要组成
RSS 与 Atom
两者目标相同,Atom 由标准组织维护、更规范;RSS 2.0 普及率更高。大多数阅读器同时支持两者,发布者可任选其一。
启示
RSS 的历史说明了开放标准的价值:即使商业产品(如 Google Reader)消亡,标准本身依然延续,这正是 Web 精神的体现。
RSS 语法
RSS 语法
RSS 是一种 XML 文档,语法规则简单:一个根元素 <rss>,内含一个 <channel>,channel 下有标题信息和若干 <item> 条目。
基本结构
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>频道标题</title>
<link>https://example.com/</link>
<description>频道描述</description>
<language>zh-cn</language>
<lastBuildDate>Mon, 18 Aug 2026 08:00:00 GMT</lastBuildDate>
<item>
<title>文章标题</title>
<link>https://example.com/post/1</link>
<description>文章摘要或全文</description>
<pubDate>Mon, 18 Aug 2026 08:00:00 GMT</pubDate>
<guid>https://example.com/post/1</guid>
</item>
</channel>
</rss>语法要点
- 大小写敏感:标签名必须小写
- 所有标签必须闭合
- 属性值必须加引号
- 特殊字符需转义(& < > " ')
- 日期使用 RFC 822 格式
特殊字符转义
原文: A & B < C
转义: A & B < C建议使用构建工具或库(如 Python feedgen、PHP SimplePie)自动生成合法 RSS,避免手写出错。
RSS channel 元素
RSS channel 元素
<channel> 元素描述 RSS Feed 的整体信息,是频道的"头部"。
必需元素(3 个)
| 元素 | 说明 |
|---|---|
| <title> | 频道的名称 |
| <link> | 频道对应的网站 URL |
| <description> | 频道的描述 |
常用可选元素
- <language>:语言,如 zh-cn
- <copyright>:版权声明
- <managingEditor>:责任编辑邮箱
- <webMaster>:技术负责人邮箱
- <pubDate>:内容发布日期
- <lastBuildDate>:最后更新时间
- <category>:频道分类
- <generator>:生成程序
- <ttl>:缓存有效期(分钟),如 60
- <image>:频道图标(logo)
完整示例
<channel>
<title>CodeNest 技术博客</title>
<link>https://www.laowang.click</link>
<description>分享编程与 AI 学习笔记</description>
<language>zh-cn</language>
<ttl>60</ttl>
<image>
<title>CodeNest 技术博客</title>
<url>https://www.laowang.click/logo.png</url>
<link>https://www.laowang.click</link>
</image>
</channel>RSS item 元素
RSS item 元素
<item> 是 RSS 中的"文章条目",一个 Feed 通常包含多个 item,每个代表一篇内容。
必需元素
- <title>:条目标题
- <link>:条目的完整 URL
- <description>:摘要或全文
通常 title 和 description 至少一个存在。
常用可选元素
- <author>:作者邮箱
- <category>:分类(可多个)
- <pubDate>:发布日期(RFC 822)
- <guid>:全局唯一标识(建议用文章 URL)
- <comments>:评论页 URL
- <enclosure>:附件(播客音频等)
- <source>:来源频道
播客条目(enclosure)
<item>
<title>第 12 期:聊聊 AI 编程</title>
<link>https://example.com/podcast/12</link>
<enclosure url="https://example.com/audio/12.mp3"
length="5233981" type="audio/mpeg" />
<pubDate>Mon, 18 Aug 2026 08:00:00 GMT</pubDate>
</item>最佳实践
- guid 使用永久链接,内容更新时保持稳定
- description 放摘要或全文(阅读器可选)
- 发布新文章时同步更新 Feed 并保留最近 10-20 条
- 避免重复 guid,阅读器以此去重
RSS 发布您的 Feed
RSS 发布您的 Feed
创建 RSS Feed 后,需要正确发布,让阅读器和用户能找到并订阅。
1. 生成 Feed 文件
手动编写 XML,或用工具自动生成:博客平台(WordPress 自带 /feed)、静态站生成器(Hugo/Jekyll 自动输出)、编程生成(Python feedgen、PHP SimplePie)。
2. 放置 Feed 文件
将 feed.xml 放到网站根目录(常见路径:/feed、/rss.xml、/index.xml)。
3. 添加自动发现(link 标签)
<!-- 放在网站 <head> 中 -->
<link rel="alternate" type="application/rss+xml"
title="RSS 订阅" href="/feed" />4. 提交到订阅目录(可选)
- Feedly / Inoreader:直接搜索域名即可发现
- RSS 目录站:RSSHub、FeedSpot 等
5. 验证 Feed 合法性
# 用 curl 检查返回
curl -I https://example.com/feed
# 在线校验
W3C Feed Validation Service: https://validator.w3.org/feed/6. 保持更新
每次发布新内容都要更新 Feed。可设置定时任务(如每 15 分钟)重新生成,或使用 CMS 自动更新。
RSS 阅读器
RSS 阅读器
RSS 阅读器(Feed Reader)用于订阅和管理多个 Feed,把分散的内容聚合到统一界面。
主流阅读器
- Feedly:最流行的云阅读器,跨平台同步
- Inoreader:功能强大,支持规则与搜索
- NetNewsWire:免费开源,苹果生态原生体验
- Reeder:iOS/macOS 精品客户端(可连 Feedly 等)
- Miniflux / FreshRSS:自托管,数据完全自主
- RSSHub:把任意网站变成 RSS 的开源项目
如何订阅
方式1:复制 Feed URL → 阅读器"添加订阅"粘贴
方式2:打开网站 → 浏览器扩展检测到 RSS 图标 → 一键订阅
方式3:粘贴网站首页 URL,阅读器自动探测 feed阅读器核心功能
- 分组/标签管理订阅源
- 全文/摘要阅读模式切换
- 已读/未读、星标、稍后读
- 关键词过滤与规则
- 离线缓存与推送通知
小贴士
善用"阅读列表"组织信息源;对信息质量进行定期"断舍离",保持订阅源精简,才能发挥 RSS 的效率优势。
RSS 实例
RSS 实例
通过一个完整实例,展示如何为网站手工编写一个功能完整的 RSS 2.0 Feed。
完整示例
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>CodeNest 知识库</title>
<link>https://www.laowang.click/</link>
<description>前端、后端、数据库、AI 应用教程与学习笔记</description>
<language>zh-cn</language>
<lastBuildDate>Tue, 18 Aug 2026 08:00:00 GMT</lastBuildDate>
<atom:link href="https://www.laowang.click/feed" rel="self" type="application/rss+xml"/>
<item>
<title>Python 快速入门</title>
<link>https://www.laowang.click/tutorial/python-intro</link>
<description>从零开始学习 Python 基础语法与常用库。</description>
<pubDate>Tue, 18 Aug 2026 08:00:00 GMT</pubDate>
<guid>https://www.laowang.click/tutorial/python-intro</guid>
</item>
<item>
<title>Docker 入门到实践</title>
<link>https://www.laowang.click/tutorial/docker</link>
<description>容器化技术详解与常用命令实战。</description>
<pubDate>Mon, 17 Aug 2026 08:00:00 GMT</pubDate>
<guid>https://www.laowang.click/tutorial/docker</guid>
</item>
</channel>
</rss>验证与测试
- 将内容保存为 feed.xml 放入站点根目录
- 用 W3C Feed Validator 校验
- 在 Feedly 中搜索域名测试订阅
- 用 curl 确认响应头 Content-Type 为 application/rss+xml
RSS 参考手册
RSS 参考手册
本手册汇总 RSS 2.0 的核心元素,方便编写与调试 Feed 时快速查阅。
channel 元素参考
| 元素 | 必需 | 说明 |
|---|---|---|
| title | 是 | 频道名称 |
| link | 是 | 频道 URL |
| description | 是 | 频道描述 |
| language | 否 | 语言代码 |
| pubDate | 否 | 发布日期 |
| lastBuildDate | 否 | 最后构建时间 |
| ttl | 否 | 缓存时间(分钟) |
| image | 否 | 频道图标 |
| category | 否 | 分类(可多个) |
item 元素参考
| 元素 | 必需 | 说明 |
|---|---|---|
| title | 至少其一 | 条目标题 |
| link | 否 | 条目 URL |
| description | 至少其一 | 摘要/全文 |
| author | 否 | 作者邮箱 |
| category | 否 | 分类 |
| pubDate | 否 | 发布日期 |
| guid | 否 | 唯一标识 |
| enclosure | 否 | 媒体附件 |
日期格式
RFC 822: Tue, 18 Aug 2026 08:00:00 GMT命名空间
常用扩展:atom(自发现)、content(全文)、dc(都柏林核心)、itunes(播客)、media(多媒体)。
更多细节见官方文档:https://www.rssboard.org/rss-specification