## 1. RSS是什么 网页以RSS的形式为其内容提供一个通过URL获得的提要。RSS提要文件包含大量离散的新闻项,每一个RSS文件包含一个频道(Channel)。一个频道必须至少具备以下元素:Title(标题),在Description(描述)中对频道的简单介绍;Link(链接相应的目标网页);Language(频道语言)。每个频道由若干个Item(项)组成,每个项包含了一个URL,一个标题和一个摘要。RSS技术主要包含两个重要组件, RSS 提要(Feed)和RSS阅读器。 比如某个博客(Blog)的入口,其基本语法如下: ```   <!-- channel 的标题 -->               <!-- 项标题 -->             ``` ## 2. RSS文件结构 RSS是两级结构,第一级结构是channel,相当于blog系统中某人的blog,第二级结构是item,相当于blog中的文章。属性中最重要的是title、description和link,title是标题,description是介绍,link是与其相关的url。 ``` 1. 2. 3. 4. 我的Blog //channel的标题 5. 与我自己的技术Blog相关联 //channel的介绍 6. http://counter.csdn.net/pv.aspx?id=72 //channel的url 7. 8. <!-- 项标题 --> //item的标题 9. //item的url 10. //item的介绍 11. //item的其他属性,比如更新时间 12. 13. 14. //一个channel有多个item 15. 16. 17. ## 3. RSS制作 ``` 烧制网页 RSS 源,主要有 **FEED43** 和 **Huginn** 两种方法: - FEED43:简单免费,六小时抓取一次,每次抓取 20 条静态页面。 - Huginn:自由度高,能自定义**抓取频率、内容结构、js 结果、输出样式**等;需要搭建服务器,学习 Huginn 抓取规则。 [Huginn](http://github.com/huginn/huginn) ! [Huginn]([https://github.com/yourname/huginn](https://github.com/yourname/huginn)) ## 3. 工作机制 内容提供者在其网站上添加RSS的链接,以提供RSS订阅功能,当打开这个链接时,传送过去了一些频道信息,比如:blog的作者名。 一种做法是,RSS链接URL指向的是一个空内容的页面,该页面后台程序通过传过来的频道信息访问数据库,获取频道列表,用Response.Write向该空页面写出XML格式的文件。 另一种做法是,RSS链接URL指向的是一个xml文件,该文件由服务器的程序事先生成好的,放在服务器上,访问时静态获取,服务器在作者每添加一个频道列表时自动更新该xml文件。 第一种做法的优点是管理方便,因为不需要为每个频道生成xml文件,所有的RSS请求都由一个后台页面处理,接口统一,但每次访问RSS链接时,都要动态地写出RSS频道列表,访问效率相对较低,第二种做法的优点是访问时,只是返回一个静态的xml文件,不需要访问数据库来临时生成,所以访问效率相对较高,但每更新一次频道列表中的项时,就要自动地重新生成xml文件以保证RSS文件的最新,这样就降低了更新的效率。 ## 4. RSSHub 一个开源易扩展的rss生成器,简单来说:让万物皆可rss。 本质上是一个爬虫路由及解析服务。开发者可以通过got、cheerio等库,来抓取网页数据,交由rsshub生成rss源。 作者:DIYGod 博客网址:https://diygog.cc 设计初衷:解决RSS订阅,需要梯子的RSS源和没有RSS源的信息订阅 - RSSHub/RSSHub Radar/TTRS RSSHub顾名思义RSS集散地,可以集中订阅各种Rss源,而且可以创建Rss源,以供订阅。 由于网络问题, RSSHub Radar也是DIYGod编写的,一个浏览器插件,作用有三个:发现网页RSS;匹配是否存在已知规则,如果是,则显示自建RSSHub的完整RSS订阅链接;同时提供推送到订阅平台或者阅读器快捷方式 [Tiny Tiny RSS](https://link.zhihu.com/?target=https%3A//tt-rss.org/)作为RSS服务器,[RSSHub](https://link.zhihu.com/?target=https%3A//docs.rsshub.app/)作为RSSfeed的生成器 ## 5. RSS阅读器 - Mac:Reeder、fluent reader、feeder、feedflow - Windows: - iOS:Unread、reeder5 、feedly、fluent reader - Andriod: - RSS服务平台:feedly.com、innoreader.com、qireader.com - 自建RSS平台: ### 5.1 RSS的订阅 有的网站提供了RSS自动发现机制,可以很方便地把RSS的URL添加到RSS阅读器中。如果没有自动发现,那么可以手动把RSS链接的URL添加到RSS阅读器中,这样就加入了一个用户订阅的频道。在RSS阅读器中可以更新频道列表或点击一个item链接打开该item的页面。 浏览器中订阅:两个浏览器插件 RSSHubRadar、油猴脚本 客户端中输入订阅URL即可完成订阅。 ## 6. 自建RSS源