1. 程式人生 > >【轉載】RSS原理、建立及使用

【轉載】RSS原理、建立及使用

最近需要接觸RSS Feed,知其然還要知其所以然。

很鬱悶的是Google Reader倒了才開始使用RSS閱讀,InoReader是一個不錯的替代。對於RSS的原理想要有個瞭解,但是網上的資料說得不是很清晰。有一篇CSDN的RSS原理和實現博文也不錯,在Wiki的Reference上也發現一篇不錯的文章。翻譯如下:

什麼是RSS?

RSS是一種共享訊息的格式規範,這種格式規範定義在XML 1.0版本中。你可以通過這種格式傳遞資訊給其他人,可以通過這種格式從各種來源接受訊息。一個網站所提供的資訊記錄在特定XML檔案中稱為RSS feed。

最近的瀏覽器可以直接閱讀RSS檔案,但需要使用一個特殊的RSS閱讀器或聚合器。

RSS歷史

RSS由網景公司在1999年開發。第一個版本為 RSS 0.90。2000年,UserLand公司改進發布了正式的 0.91 規範。

2000年,O'Reilly 開發出基於RDF的RSS 1.0 規範,由RSS-DEV團隊進一步維護,命名為RDF Site Summary。

2002年,Dave Winer(UserLand前員工)在哈佛大學開發出RSS 2.0.

該頁面是基於Really Simple Syndication,哈佛大學的2.01規範。(This page is based on the Really Simple Syndication, 2.01 specification from Harvard.此句不知如何翻譯,望有高人指點)。

為什麼使用RSS?

以計算機可以處理的特定格式來獲得網站提供的資訊或新聞。將獲得資訊或新聞展示在網頁上,或者供自己閱讀。

對於內容的提供者,RSS允許他傳送自己網站的資訊和新聞。

RSS如何工作?

RSS系統通過網路釋出文章和新聞的原理非常簡單:

   1. 首先,我們有一些想要在其他網頁展示的頁面,這些頁面稱為RSS feed。

   2. RSS feed由一個XML檔案定義,該XML檔案包括每個想要展示頁面的URL,標題和摘要。

   3. 想要在自己電腦上閱讀RSS feed,只需使用RSS閱讀器或者瀏覽器,將這些feed新增到你的閱讀器中。

   4. 其他接收者網站想要顯示 feed 須要從提供者處獲得RSS檔案,提取URL頁面,並顯示標題和摘要。這些工作可以通過PHP指令碼完成。

   5. 當有人想要訪問接收者網站時,啟動指令碼,呼叫從提供者網站獲取的RSS檔案,抽取資訊從而顯示新聞列表

   6. 通過點選新聞列表中的某一項,可以訪問該新聞提供者的原網頁。

RSS文件結構

RSS文件是一個XML檔案和一個通用的2.0規範的“RSS”標籤容器。

這個檔案擁有至少一個channel。內容為網站所提供的資訊。

channel提供一些文章和資料來自於相同或者不同的網站。

怎樣使用RSS?

  1-在桌面應用中使用RSS

RSS feed 通過Internet Explorer 7 或 Firefox 2顯示。一個RSS閱讀器(或聚合器)也可以被安裝在作業系統中(Windows,Linux,Mac OS等等)。在參考資料中,有一個通過XUL構建。

獲取的內容取決於讀者,新增一個feed進列表,也許只需要點選“新增”按鈕來獲得RSS feed的URL。

  2 -在網站中使用feed

RSS feed顯示為標題的列表(或者可選的摘要)。點選特定標題展示新聞內容。標題為自動更新。每當頁面載入RSS檔案並且從中抽取資料時,PHP或者其他語言指令碼建立新的列表並顯示在頁面上。在參考資料中提供了一些這類工具的連結。

怎樣通過RSS feed釋出新聞?

有幾種生成RSS feed的方法。

     · 使用PHP的RSS庫。PHP指令碼能從標題和頁面內容的描述生成XML檔案。

     · 使用特殊的工具從頁面抽取資訊。

給出一個XML檔案的訪問連結如右:

<a type="application/rss+xml" href="http://ww.xul.fr/rss.xml">

RSS feed for this site

</a>

feed在Atom格式下使用"application/atom+xml"代替。
用你網站的域名替換xul.fr。
名詞解釋
   · Feed. "item"標籤的集合,資訊或者新聞的集合。
   · RDF. 見本網站的RDF頁面
   · Syndicated. Published through an RSS feed.
   · Syndication. Publishing data by RSS feeds.
主要的RSS標籤
rss. 通用容器
channel. 分佈的頻道(A distributing channel)。它包含幾個描述性的標籤和一個或以上item。

<rss version="2.0">

<channel>

...

</channel>

</rss>

  channel中必要的標籤

    · title. channel的標題。應該包含名字。

    · link. 提供該channel的網站URL。

    · description. 提供者資訊的摘要。

    · item. 至少需要一個item標籤,提供內容。

<rss version="2.0">

<channel>

<title>XUL</title>

<link>http://www.xul.fr</link>

<description></description>

<item>

...

</item>

</channel>

</rss>

  channel中可選的標籤

    · language. 文字中使用的自然語言(英語、漢語等)。

    · docs.  提供檔案格式的文件的位置,可能是哈佛大學。

    · webMaster. E-mail

    · pubDate. 釋出時間。

    · 等等。更多參加規範文件。

 channel中的item

每個item標籤必須包含下列標籤:

    · title. 文章的標題。

    · link. 文章的連結。

    · description. 文章的摘要。

<item>

<title>XUL news</title>

<link>http://www.xul.fr/index.php</link>

<description>... some text...</description>

</item>

 一些可選的item標籤:

    · pubDate. 釋出時間。

    · guid. 指定item的唯一性的字串

    · cate gory. 文章的分類

    · 等等

按步建立個人RSS feed

首先,這僅僅是一個簡單的文字檔案,通過任何文字編輯器建立。但使用一個XML編輯器將會更加方便。(參見"software"頁面)。該檔名字可以是"feed.xml"。

整體結構如下:

<?xml version="1.0" ?>

<rss version="2.0">

<channel>

</channel>

  1)通過channel標籤定義源

channel對於你的所有RSS feed將是一樣的。下列標籤是必須的:

-title:你網站的名稱,可能是你主頁的標題標籤內容。

-link:你網站的URL,例如:http://www.xul.fr

-description:你網站的描述,大約200個字元,可能是你主頁標題區域的description標籤的內容。

<channel>

<title>XUL and XML</title>

<link>http://www.xul.fr/en/</link>

<description>XML graphical interface etc...</description>

</channel>

  2)新增影象

這是一個可選項。設計一個小的圖表(例如88x31),使用通用格式(gif, jpg, png)並且把它放在RSS檔案的同一個目錄下。

"image"標籤是channel標籤的子元素。

-url 是影象的地址

-link 是點選影象時連結的地址

<channel>

<title> </title>

<link> </link>

<image>

<url>http://www.xul.fr/xul.gif</url>

<link>http://www.xul.fr/en/index.php</link>

</image>

</channel>

  3)新增新訊息

現在,我們將會新增一個網頁來顯示資訊。由"item"標籤實現,"item"標籤是channel的子元素和必要元件。

-title:文章的標題

-link:頁面的URL

-description:文章的摘要,大約200個字元

<item>

<title>News of today</title>

<link>http://www.xul.fr/en-xml-rss.html</link>

<description>All you need to know about RSS</description>

</item>

  4)新增更多item

更多item可以被新增到這個channel

  5)上傳檔案

將feed.xml檔案放到你的網站中,和其他網頁放在一起。

  6)驗證檔案

  7)使RSS可獲得

在主頁裡新增RSS按鈕。點選按鈕需要顯示你所創造的XML檔案

<a href="http://www.xul.fr/rss.xml">

<img src="rss.gif">

</a>

  8)更新feed

你僅需要新增item標籤來發布更多的文章,刪除舊的item標籤來保持總文章數一定。

例子:完整的檔案

<?xml version="1.0" ?>

<rss version="2.0">

<channel>

<title>Ajax and XUL</title>

<link>http://www.xul.fr/en/</link>

<description>XML graphical interface etc...</description>

<image>

<url>http://www.xul.fr/xul-icon.gif</url>

<link>http://www.xul.fr/en/index.php</link>

</image>

<item>

<title>News of today</title>

<link>http://www.xul.fr/en-xml-rss.html</link>

<description>All you need to know about RSS</description>

</item>

<item>

<title>News of tomorrows</title>

<link>http://www.xul.fr/en-xml-rdf.html</link>

<description>And now, all about RDF</description>

</item>

</channel>

</rss>

你可以下載例子,並且使用它作為模板,記得用你網站的域名替換xul.fr。

瀏覽器怎麼知道網站上有RSS feed?

你已經建立了RSS feed,並且它現在儲存在你網站的根目錄下。當瀏覽器進入主頁時(或者其他你想要的頁面),你必須讓它知道這個檔案的存在和它的位置。 Firefox 會在URL區域顯示feed圖示,而 Internet Explorer會在控制欄顯示。

為了啟用它們,將下面的程式碼插入你網頁的原始碼中 <head> </head>部分的任意位置。

<link rel="alternate" type="application/rss+xml"

href="http://www.xul.fr/rss.xml" title="Your title">

用你網站的域名下的RSS feed檔案位置替換此URL。

如果檔案是atom格式,用atom+xml替換rss+xml

規範和工具

文件規範

生成並顯示RSS feed的工具

  • Bioloide. PHP編寫的線上RSS生成器和編輯器
  • RSS Reader. PHP函式用於在一個網頁上顯示本地或遠端的RSS feed。