> 本文由云+社区发表
摘要:我们常常会有订阅别人文章的需求,有更新的时候希望能有提醒的功能,RSS就是这样一个订阅的方式。很多网站上看到RSS的入口,点进去以后总是显示一堆的XML代码,我们来看看怎么使用这个功能。在本次的学习过后你将学会使用RSS来订阅别人的网站,而且你还能学会给不能用RSS网站的创建订阅,比如学校的教务网站发布重要的通知、新闻通知、公司网站通知、包括好看的电视剧更新就都能被你订阅了。
# 定义
> RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章、新闻、音频或视频的网摘。RSS文件(或称做摘要、网络摘要、或频更新,提供到频道)包含全文或是节录的文字,再加上发布者所订阅之网摘数据和授权的元数据。 Really Simple Syndication“简易信息聚合”就是RSS的英文原意。把新闻标题、摘要(Feed)、内容按照用户的要求,“送”到用户的桌面就是RSS的目的。RSS一词有时候大体上意为社会性书签,包括各种RSS的不同格式。例如,Blogspace对使用网摘于一集成器内之动作标为RSS info和RSS reader。虽然它的第一个句子就包含明确的Atom格式:“RSS和Atom文件能够用简单的格式从网站更新消息至你的计算机!”
# 特点
- 可以有选择地浏览您感兴趣的以及与您的工作相关的新闻。
- 通过使用 RSS,您可以把需要的信息从不需要的信息(兜售信息,垃圾邮件等)中分离出来。
- 通过使用 RSS,您可以创建自己的新闻频道,并将之发布到因特网。
- 使用客户端,可以在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。
# 如何订阅
## 浏览器方式
这里介绍chrome的扩展程序,其他的浏览器大同小异。
1. 打开[Chrome网上商店](https://chrome.google.com/webstore/category/extensions?hl=zh-CN),并按装feeder插件
![img](https://ask.qcloudimg.com/http-save/3097464/4cwq1yx9bw.png?imageView2/2/w/1620)Chrome网上商店
1. 安装完成后会自动提示注册一个账号,按照提示注册完成登录即可。
2. 完成插件安装之后,在浏览博客或者其他网站时,点击RSS订阅图标,就可以正常订阅成功。
![img](https://ask.qcloudimg.com/http-save/3097464/81z2j064qu.png?imageView2/2/w/1620)RSS按钮
![img](https://ask.qcloudimg.com/http-save/3097464/ikutrx9x73.png?imageView2/2/w/1620)点击订阅
1. 当有文章更新的时候,就会在浏览器右上角提示,打开后就可以看到全部订阅者了
![img](https://ask.qcloudimg.com/http-save/3097464/n711xwqvvb.png?imageView2/2/w/1620)chrome浏览器右上角提示
1. 可以在
reader
看到比较舒服的阅读方式,也可以直接右上角打开文章来看
![img](https://ask.qcloudimg.com/http-save/3097464/zd7rgqhacx.png?imageView2/2/w/1620)优雅的阅读
2. 在feeder的设置页面可以针对每个订阅者设置,可以选择刷新周期,提示方式(不过Email提示是要收费的),还可以导出你的订阅让好友来导入
![img](https://ask.qcloudimg.com/http-save/3097464/jx4wlaq7hk.png?imageView2/2/w/1620)配置
## 客户端方式
### 阅读器推荐
因为我觉得浏览器端的就够我用了,就没用过客户端的,下面是网上摘录的客户端阅读器
- irreade 最好用,支持多平台。
- NewsGator Online 一个免费的在线 RSS 阅读器。包含 Outlook 同步,通过 Media Center Edition 查看电视内容,以及 blog 和标题的发布。
- RssReade 基于 Windows 的免费 RSS 阅读器。支持 RSS versions 0.9x、1.0 以及 2.0 和 Atom 0.1, 0.2 以及 0.3。
- FeedDemon 基于 Windows 的 RSS 阅读器。使用很简便,界面很有条理。可以免费下载!
- blogbot 一个针对 Outlook 或 Internet Explorer 的 RSS 阅读器插件。针对 Internet Explorer 的简化版是免费的。
### 我已经有一个 RSS 阅读器了,接下来怎么做呢?
点击您希望阅读的 RSS feed 旁边的橙色小图标 或 ,把浏览器窗口的 URL 拷贝粘贴到您的 RSS 阅读器即可。
# 语法
事实上我们根本不用关心RSS的语法是什么,因为多的是自动RSS的工具,如果使用的开源blog通常也会提供RSS自动生成的插件,以下是2.0版本语法
```js
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>pzqu的自言自语</title>
<link>https://qupzhi.com</link>
<description>我的描述</description>
<item>
<title>如何用RSS订阅?</title>
<link>https://qupzhi.com/how_to_subscribe_RSS</link>
<description>摘要.....</description>
</item>
<item>...略</item>
</channel>
</rss>
```
感兴趣的同学可以看看[官网](http://www.rssboard.org/rss-2-0-1),不同的版本语法可能略有差异。
# 如何让你的网站支持RSS
建议使用一些直接就支持自动生成RSS的开源blog,像WordPress、Blogger、Radio、Hexo,这里提供一个自动给网站生成RSS的方法,有了这种神器以后任何东西你都可以订阅了,比如电影网站,新闻网站,公司网站,学校通知。
- 注意科学上网 [http://www.feed43.com](http://www.feed43.com/)提取HTML中关键内容进入创建页面,输入你想生成RSS的网址,这样可以拿到这个网站的HTML
![img](https://ask.qcloudimg.com/http-save/3097464/i1un2urb77.png?imageView2/2/w/1620)输入你想生成RSS的网址
## 找到内容所在 HTML 字段规律。不同的文章会有相同的代码段落,比如我这里(为了好看我格式化了下)
**标题和url**
```js
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="https://qupzhi.com/mariadb-better/" itemprop="url">
mariadb 内存占用优化
</a>
</h1>
```
**创建时间**
```js
<time title="创建于" itemprop="dateCreated datePublished" datetime="2019-01-09T22:25:00+08:00">
2019-01-09
</time>
```
**摘要**
```js
<div class="post-body" itemprop="articleBody">
<p>
摘要:我们在使用mariadb的时候发现有时候不能启动起来,在使用过程中mariadb占用的内存很大,在这里学习下mariadb与内存相关的配置项,对mariadb进行调优。
</p>
</div>
```
- 我们取到了标题、创建时间、摘要等比较关键的东西
## 精简提取规则代码
定义规则找到网页中你想要看的项目的列表代码(也就是文章的代码),将你想要的字段用`{%}`代替为参数,不需要的可以用`{*}`代替,点击Extract,改到满意为止。
![img](https://ask.qcloudimg.com/http-save/3097464/g0ykq5na2b.png?imageView2/2/w/1620)输入规则
这里的规则让我试到头疼,但是慢慢试就是能试出来的要注意
- 一行一个规则比较清晰,这个系统也支持
- 每行结束加一个`{*}`来忽略规则间不要的东西,如果有空格回车的也加上
- 一个规则试好了再试另一个规则
- 可以借助[HTML格式化工具](http://www.bejson.com/jshtml_format/)
**我的匹配结果**
![img](https://ask.qcloudimg.com/http-save/3097464/ccv3f6jjo9.png?imageView2/2/w/1620)我的匹配结果
如上图所示,每一篇文章的标题、链接、摘要、时间都已经成功抓取了。
## 完善RSS源格式
我们要完善好源格式,才能正确的输出源,在上面的语法那一节我们也说过了,一个完整的源要有网站title,link,description还要有每个文章的tile,link,time,description。
![img](https://ask.qcloudimg.com/http-save/3097464/mvj8nl1hns.png?imageView2/2/w/1620)网站
来看文章的要怎么填
![img](https://ask.qcloudimg.com/http-save/3097464/flbly0vpja.png?imageView2/2/w/1620)变量
变化的字段用 `{%+数字}` 的形式标示出来,也就是上面我的匹配结果里展示的内容,不同的 {%+数字} 之间可以填写随意的文字、符号过渡,如下
![img](https://ask.qcloudimg.com/http-save/3097464/gkcak955h0.png?imageView2/2/w/1620)文章
ok的话点Preview就可以生成了
看看结果
![img](https://ask.qcloudimg.com/http-save/3097464/twrpg9yd72.png?imageView2/2/w/1620)结果
## 获得你的RSS URL
![img](https://ask.qcloudimg.com/http-save/3097464/uc4h1o5ylr.png?imageView2/2/w/1620)我的RSS URL
- Feed URL就是你的RSS地址了,你可以放在任何地方
- Edit URL就是以后用来编辑你RSS的页面了
- 下面可以把这个url的好记一些 好了,这个url放到文章你的rss订阅器里就可以订阅了
![img](https://ask.qcloudimg.com/http-save/3097464/q0dhs7s55x.png?imageView2/2/w/1620)
## 限制
![img](https://ask.qcloudimg.com/http-save/3097464/pgqmtke7w8.png?imageView2/2/w/1620)
- 你可以免费使用 Feed43 做 RSS 源
- 免费版不限制创建多少个rss源但是会有广告,每个源最大只能有250KB,更新后6小时才能刷新一次,最多100篇文章,匹配规则在30个内。
- 其实大部分都够用了,这个是[付费页面](https://feed43.com/upgrade.html#personal)
## 提供RSS
在希望向外界提供 RSS的页面放一个RSS的图标,然后向这个按钮添加一个指向 RSS 文件的链接。代码应该类似这样:
```js
<a href="https://qupzhi.com/atom.xml">
<img src="https://user-gold-cdn.xitu.io/2019/1/11/1683b8918abb8f90?w=36&h=14&f=gif&s=1036" width="36" height="14">
</a>
```
# 附Hexo匹配规则
```js
<a class="post-title-link" href="{%}" itemprop="url">{%}</a>{*}
<time title="创建于" itemprop="dateCreated datePublished" datetime="{*}">{%}</time>{*}
<div class="post-body" itemprop="articleBody">{*}<p>{%}</p>{*}</div>
```
# 引用
[wiki RSS](https://zh.wikipedia.org/wiki/RSS)
[RSS 教程](http://www.runoob.com/rss/rss-tutorial.html)
[使用RSS订阅](https://ihaoming.top/archives/644dacb3.html)
[自动生成RSS](https://baijiahao.baidu.com/s?id=1617627976106767760&wfr=spider&for=pc)
[利用 Feed43,将任意网页制作成 RSS 订阅源 | 一日一技](https://sspai.com/post/34320)
**此文已由作者授权腾讯云+社区在各渠道发布**
**获取更多新鲜技术干货,可以关注我们[腾讯云技术社区-云加社区官方号及知乎机构号](https://www.zhihu.com/org/teng-xun-yun-ji-zhu-she-qu/activities)**
有疑问加站长微信联系(非本文作者)