目前最成功的 XML服務就是Python RSS,儘管它的起源非常混亂,Python語言確實是一個很棒的 RSS 處理工具,這篇文章介紹了一些可用於 RSS 處理的模組。
RSS 是一個可用多種擴充功能來表示的縮寫:「RDF 站點摘要(RDF Site Summary)」、「真正簡單的辛迪加(Really Simple Syndication)」、「豐富站點摘要(Rich Site Summary)」。也許還能用其他擴充來表示。在如此混亂的名稱背後,您會發現和這樣一個平凡的技術領域相關的故事多得令人吃驚。
RSS 是用來分發 Web 網站上的內容的摘要的簡單的 XML 格式。它能夠用於共享各種各樣的信息,包括(但不是僅限於)簡訊、Web 站點更新、事件日曆、軟體更新、特色內容集合和基於Web 進行拍賣的商品。
Python RSS是 Netscape 在 1999 年創建的,它允許將許多資訊來源中的內容聚集到 Netcenter 入口網站(這個入口網站現在已經不存在了)。 UserLand 社群中的 Web 狂熱愛好者們成為了 RSS 早期的支持者,RSS 很快就成為了一種非常流行的格式。
這種流行使得人們很難對 RSS 進行改進使它能用於更多的地方。這種限制導致了 RSS 的發展出現了分歧。其中一個群組選擇了一種基於 RDF 的方式,目的在於利用大量的 RDF 工具和模組,而另一個群組則選擇了一種更緊縮的方式。
前者稱為 RSS 1.0,而後者則稱為 RSS 0.91。就在上個月由於 RSS 非 RDF 變體的一個新版本的出現使得兩者之間的競爭進一步加劇,這一新版本被它的創造者稱之為“RSS 2.0”。
RSS 0.91 和 1.0 非常流行,並且許許多多的入口網站和 Web 日誌都使用它們。事實上,blogging 社群是 RSS 的主要用戶,而 RSS 就是某些現有的用於 XML 交換的網路令人印象深刻的理由。
這些網路已在有機地成長,並且真正地成為現有的最成功的 XML 服務的網路。 RSS 成為一種 XML 服務是因為它被透過網路協定交換 XML 資訊(絕大多數的 RSS 交換是 Python RSS 文件的簡單 HTTP GET)。
在本文中,我們介紹的不過是許多可以與 RSS 一起工作的 Python 工具中的少數幾個。我們不提供針對 RSS 的技術上的介紹,因為您可以在其他許多的文章中獲得這些內容。
(請參閱參考資料)。我們推薦您先簡單熟悉 RSS 知識,並且能了解 XML。您不需要去了解 RDF。 [ 由於 RSS 使用了 XML 描述而沒有使用 WSDL,所以我們將 RSS 視為「XML 服務」而非一個「Web 服務」。 - 編者按 ]
Mark Nottingham 所寫的 RSS.py 是用於 RSS 處理的 Python 函式庫。它非常完善並且編寫的很好。它需要 Python 2.2 和 PyXML 0.7.1。它的安裝是非常簡單;您只需從 Mark 的主頁下載 Python 檔案並將它複製到您的 PYTHONPATH 中的某個地方。
大多數 RSS.py 的使用者本身只需要關心它所提供的兩個類別:CollectionChannel 和 TrackingChannel。後者似乎是這兩個類別中更有用的一個。 TrackingChannel 是一個包含以每一項的關鍵字為索引的所有的 RSS 資料的資料結CollectionChannel 是一個類似的資料結構,但它的結構更像 RSS 文件本身。
它的頂層通道資訊使用 URL 所表示的雜湊值指向項目細節。您很可能會使用 RSS.ns 結構中的實用程式名稱空間聲明。清單 1 是一個簡單的腳本,它將下載並解析用於 Python 新聞的Python RSS供給,並以一個簡單的清單形式列印來自各項的所有資訊。
我們從建立一個 TrackingChannel 實例開始,並且將從 http://www.python.org/channews.rdf 上的 RSS 供給解析得到的資料填入其中。 RSS.py 使用元組作為 RSS 資料的屬性名稱。
對Python系統程式廣泛應用說明
圖解Python應用程式功能介紹
有關Python應用領域進行說明介紹
使用Python腳本語言進行程序編輯
解析Python開發程式原理
對於那些不習慣 XML 處理技術的人來說,這種方式看起來也許不太尋常,但它對於精確了解原始的 RSS 檔案中的內容的確是一種很有效的方式。因此,一個 RSS 0.91 title 元素被認為不同於一個 RSS 1.0 中的同名元素。
應用程式有足夠的資料來忽略這個差異,如果您願意,可以透過忽略每個元組的名稱空間的部分來忽略這個差異;但基本的API 是與初始 RSS 檔案的語法結合的,所以這個資訊沒有遺失。
在程式碼中,我們使用這個屬性資料來聚集用於顯示的新聞供給中的所有項目。請注意,我們仔細地不去假定任何特殊的項可能會有什麼屬性。我們使用如下程式碼所示的安全性的形式來檢索屬性。
【相關推薦】
1. RSS高校入門教學
#以上是相對Python RSS服務說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!