史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2005-01-07, 03:10 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 資訊 - RSS:網路通訊的新潮流 from unkown space

1。什麼是RSS?
RSS代表Really Simple
Syndication。也就是說簡單易行的訊息發怖。有時候人們也把RSS形象的稱為rich site
summary。因為RSS經常只是發怖一些簡要的訊息,如果你感興趣的話,可以點擊裡邊的鏈
接到網站上檢視詳細內容。總的來說,RSS有點像Email,是一種新的訊息傳播方式。

2。RSS的優點。
對於訊息接受者來說,RSS最大的好處是方便讀取。比如說你對某個網站感興趣,經常訪
問。一般大家的做法是把這個網站加入bookmark裡。隔個一兩天訪問一下。如果你有十個
這樣的網站,你就得開十次視窗。而且你每次還不知道網站都有什麼最新內容,每次都得
dig in and dig out。搞得挺累得。如果你有一個RSS閱讀器(RSS reader)就不一樣了,
你可以把這些網站都加到你的閱讀器裡,網站的最新內容幾乎同時在你的閱讀器視窗裡顯
示出來。如果你看到感興趣的標題或是簡介,可以再點擊連接到相關網站上。另一個好處
是你不當心email spam,因為你從來不用指出自己的email address。

對於博客們來說,RSS的好處在於能夠及時參與討論。比如說某博客在自己的網站上發表
一篇最新電影評論。狐朋狗友們在RSS閱讀器上幾乎同是受到這篇評論,於是利馬到該博
客上回貼,參與討論。要按以前的進度,可能過個五六天才到該博客上看一眼,黃花菜也
涼了。

對於網站主人來說,RSS的好處在於提供了一種有效訊息交流方式。你想阿,除非你是yah
oo, google,要不你網站做的再好,誰屁顛顛的有事沒事老去你網站上看一眼。

3。RSS將成為成為Blog之後的網路新潮流
第一個Blog不知道起於何時,最早的RSS卻是由Netscape開發於1999年(http://www.perl.
com/pub/a/2000/01/rss.html)。RSS之所以沒能很快流行起來是因為它用的是XML語言,
和主流的HTML語言無法相容,無論是讀或是寫都有難度。不過RSS在最近一兩年引起很大
關注。Yahoo正在建一個RSS訊息庫,處於BETA測試期(login My Yahoo! and you'll see
RSS Headlines (BETA))。Mozilla的Firefox可以直接讀取XML文件;Microsoft IE也可以
在一些plug-in的說明 下讀取XML文件。可以預見RSS在不久的將來會成為網路通訊的主流


4。RSS閱讀器(RSS reader)
有很多軟體可以讀取XML文件。我只用過My
Yahoo!和BlogExpress(http://www.usablelabs.com/productBlogExpress.html )。My
Yahoo只要login到yahoo帳戶裡就可以用了,不過我比較喜歡BlogExpress,比較一目瞭然
一些。其他的軟體有http://www.feedreader.com/http://www.rssreader.com/ ,
Firefox, Pluck (a plugin for IE)等。

5。RSS for blogger。
如果你用blogger.com用戶,syndicate你的網路日誌很簡單。註冊到博客裡,進入settin
g---site feed,選項publish site feed-yes。一切就都OK了。把下邊的site feed URL拷
貝下來,paste到my yahoo或任何RSS reader,你就可以看到自己的博客已經發怖出去了


6。RSS for Webmaster。
產生XML文件需要XML Composer。我用的是NewzAlert(http://www.newzalert.com/ )。這
個軟體挺好用的,Help裡詳細的使用說明,我就不囉唆了。當然其他的還有很多類似軟體
google一下估計可以找到一大堆。

對於webmaster來說,RSS還有一個好處就是可以用一些軟體直接把其他網站的內容(RSS
feeds)放到你的網站上去。也就是說,如果把RSS這種訊息傳播方式和電視類比的話,那
麼你可以充當一個電視台(websites with original RSS feeds),發射塔(other
websites which use these feeds)和觀眾(feed readers)的角色。類似這個發射塔的免
費軟體有:http://www.feedroll.com/rssviewer/ 。不過我還沒用過。


補充:忘了還有很重要的一點。RSS之後在自己的相關網頁上放個桔紅色的RSS或XML圖案
,這個圖案連接你的XML文件位址。如果是blogger的話,就連site feed url。這樣別人
訪問你的網頁或是weblog時就知道你的網頁已經RSS了,可以點擊右鍵,把XML位址拷到自
己的RSS Reader裡去。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-03-03, 03:49 PM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

三分鍾全面瞭解 Blog 和 RSS

Q:什麼是 Blog?
A:"Blog"是 Web Log 的簡稱(譯者註:也就是網志(中國大陸也叫博客))。它是一種作者與讀者以日誌風格進行交互的中介。在軟體社區,人們以網志形式來共享觀念與思想變得越來越流行。如:

http://blogs.ccw.com.cn

就是CCW上的一個 blogging。
Q:建立網志最輕鬆的方法是什麼?
A:要想建立自己的網志,最容易的方法是到類似 blogger.com 這樣的站點註冊一個新用戶,它提供一個新增自訂網志的 Web 界面,並且可以立即使用所新增的網志。類似 blogger.com 的站點有很多,它們都提供對網志特性的支持。 如果你想更多地控制網志的基礎結構或者想要在自己的伺服器上建立網志服務系統。你可在以下最流行的幾種網志套用商業產品中選項其一:Radio Userland、Manila 和 Movable Type。還有些易用的免費 .NET 網志套用可以使用,最流行的有:.TEXT 和 dasBlog。只要把它們下載下來,然後按照安裝說明進行安裝與設定,分分鍾便可建立起一個可執行的網志服務系統。
  從功能上講,這兩個關於 .NET 的網志套用系統不相上下。其主要區別在於 .TEXT 需要資料庫,SQL Server 或者 MSDE,而dasBlog 將所有訊息都儲存於在 XML 文件中(它關於原來一些微軟公司開發人員新增的 BlogX 框架),另一個差別是 .TEXT 在單個安裝組態中可支持多個網志(比如現在的

http://blogs.msdn.com

就是如此),而 dasBlog 要支持多個網志,必須進行多次安裝。但 dasBlog 有一個很突出的特性,那就是「Mail to Weblog」,它允許你通過郵件來發怖新訊息。
  新的 MSDN 網志服務站點和 PDC Bloggers 都是開始尋找關於軟體開發主題的很好去處。只要瀏覽這些站點之一便可閱讀其經過聚合的預定內容。其預定的摘要會向你公開許多個人網志,漸漸的你會自然而然地發現一些你比較喜歡閱讀的內容。這樣,你便可以直接預定你最喜歡的個人網志摘要。
  對於專門討論 XML 和 Web 服務的網志,請檢視 MSDN Web Services Developer Center 上的清單,我個人要花很多時間上這些網志站點。
Q:什麼是 Feed(以下稱為提要),如何預定它?
A:網志以 RSS 我的文件 形式為其內容提供一個提要,該 RSS 我的文件可以通過眾所周知 URL 獲得。RSS 我的文件是一個 XML 文件,它包含大量離散的新聞項,如某個網志中的入口項(RSS 提要的例子參見 Figure 1)。由於 RSS 是 XML 格式文件,所以它很容易被其它程序所使用。
  RSS 聚合器是一個讀取 RSS 我的文件並顯示新聞項的程序。大多數聚合器只要輸入 RSS 的 URL,使得預定提要成為可能。
  RSS 使閱讀網志便得容易。大多數經常閱讀網志的開發人員都使用某種檔案類型的聚合器來說明 他們有效地篩選提要內容。聚合器使得閱讀網志的感覺就像是在閱讀電子郵件,因為它們突出新聞項並將新聞項進行緩衝處理以便離線閱讀(參見 Figure 2)。
  還有一些在線 RSS 聚合器將 RSS 提要元件服務到某個單獨的網站。其優點是易於設定並且可以從任何電腦存取你的提要內容。當然,其缺點也是顯而易見的,那就是在閱讀時必須始終保持連接。
  RSS 是網志成為一種強大的新型訊息交流形式之根本所在。在網志出現之前,大多數開發人員為了要尋找到需要的內容,通常要花大量時間來篩選掉那些令人討厭的無關的訊息。
  網志通過讓讀者選項所要閱讀的提要,將控制權交給讀者,從而有效地構建自己的個性化內容流。
  其它檔案類型的站點也能利用 RSS 的優點來聚合內容。例如,多數主流的新聞站點包括 Wired、CNet、Yahoo 和 NPR News 都提供 RSS 提要。訪問 Blogdigger 和 Syndic8,你可以找到一些支持 RSS 的站點。
  微軟的 MSDN 提供 RSS 提要(RSS feeds)來聚合新增加到站點的技術內容。MSDN 的 Just Published提要是一種保持 MSDN 新文章和下載的主要方式。甚至 MSDN Magazine(MSDN 雜誌)都有其自己的 RSS 提要!可以預定:

http://msdn.microsoft.com/msdnmag/rss/recent.xml

獲得每月的更新以便檢視本期有何內容?目前有許多種 RSS 聚合器可供選項,在

http://blogs.law.harvard.edu/tech/di.../5/aggregators

上可以找到一個相當完整的列表。其中一些是在線聚合器,而另外一些是桌面應用程式。有些是免費的,另外一些需要付費才能使用。
Q:哪個 RSS 版本是最通用的?
A:這個問題的答案要看你問的是誰,RSS的版本有好多個,0.90、0.91、0.92、0.93、0.94、1.0 和 2.0。要弄清楚這些版本之間的差別是巨大的挑戰之一。理解它們需要瞭解一些有關它們的歷史背景。Netscape 新增了 RSS 的最初版本 0.90,起初的名字是「RDF Site Summary」或者「Rich Site Summary」(規範中說前者是正式名稱)。Netscape 新增 RSS 0.90 用於其 Web 門戶,這個時候,其他人看到了 RSS 的使用潛力。Userland Software 是第一個開始將 RSS 用於其網志商業產品者之一。
  版本 0.90 在很大程度上關於 W3C 的 Resource Description Framework (RDF)。許多人都認為 RDF 過於複雜,因此都建議出一個免費的簡化版本 0.91。這個工作恰好就給了 Userland Software。Userland Software 便繼續發展 RSS 的簡化版本,隨後出台的版本包括:0.92、0.93 和 0.94。為了強調其所做的簡化工作,他們將 RSS 的全稱定為「Really Simple Syndication」。
  正當 Userland Software 繼續專注於其簡化工作時,另外一組開發人員在復興最初的 RDF 版本(0.90),因為 RSS 號稱自己更靈活。他們最終發怖了一個 RSS 1.0 的版本,其正式名稱還是「RDF Site Summary」。由於使用 RDF,這個版本完全不同於 Userland Software 所控制的版本。Userland Software 當然不太願意看到 RSS 1.0 似乎要取代其 0.94 版本的事實,於是出了一個新版本,並將版本號一下子跳到了 2.0。
  這就是今天的這種局面,形成了兩個主要的競爭版本:一個關於 RDF 1.0,而另一個則不是(2.0),但它們兩個都共用相同的名字。這是一種可怕的混亂,因為版本號導致人們誤認為 2.0 是 1.0 的改進版本,而實際上它們是兩個目標完全不同的規範。另一組開發人員已經下狠心著手解決這種混亂問題,通過定義新的摘要(syndication)規範來與 RSS 名字的隨意性決裂。這個解決方案稱為 Atom(原子)項目。本文稍後將會詳細討論。
  使用哪個版本其實是無關痛癢的,大多數 RSS 聚合機制支持所有的 RSS 版本(有些甚至支持 Atom)。最終的決定取決於你是否想使用 RDF,可謂蘿蔔白菜,各有所愛,它完全要看某人所信奉的 Semantic Web 概念而定。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-03-03, 03:50 PM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

Q:RSS 1.0 和 RSS 2.0 各是什麼樣子?
A:RSS 1.0 和 2.0 格式所包含的核心訊息相同,但其結構不一樣。我提供了一個 RSS 1.0 我的文件(參見 Figure 1)以及一個同等的 RSS 2.0(參見 Figure 2)用於對照。
你會注意到頂行右邊開始的根元素的差異,RSS 1.0 的根元素是 rdf:RDF,而 RSS 2.0 的根元素是 rss。rss 還包含一個強製版本內容用以表示所用的RSS的準確格式(可能的值包括:0.91, 0.94 等)。另一個主要差別是 RSS 1.0 我的文件有名字空間限定,RSS 2.0 的我的文件就沒有。不管怎樣,包含在兩個我的文件中的訊息本質上是一樣的。
  兩個版本都包含 channel 元素,而 channel 元素又包含三個必須的元素:title、description 和 link,其程式碼如下:
  除了這些必須的元素外,RSS 1.0 還定義了三個附加元素:image、items 和 textinput,其中,image 和 textinput 是可選的。另一方面,RSS 2.0 提供了 16 個附加元素,其中也包括 image、items 和 textinput,此外還有 language、copyright、managingEditor、pubDate 和 category。RSS 1.0 允許通過定義在單獨的 XML 名字空間中的可增強元素來新增這種檔案類型的元資料。
  這兩種格式在結構上的主要區別必須要看其 item、image 和 textinput 節點的表示形式。RSS 1.0 中,channel 元素包含對 item、image 和 textinput 節點的引用,這些節點存在於 channel 節點本身之外。這樣在 channel 和 所引用的節點之間建立了一種 RDF 關聯。如 Figure 1 所顯示,channel 元素與一個 image 元素以及兩個 item 元素關聯。RSS 2.0 中,item 元素只是在 channel 元素中連續排放(如 Figure 2 所顯示)。item 元素包含實際的新聞項訊息。item 的結構在兩個版本中是相同的。item 元素通常包含 title、link 和 description 元素,如下程式碼所顯示:
  在 RSS 1.0 中,title 和 link 是必須的,description 是可選的。而在 RSS 2.0 中,title 或 description 必須提供其中的一個;其它均可選。這些只是定義在 RSS 1.0 中的 item 元素。RSS 2.0 提供幾個其它可選元素,其中有 author、category、comments、enclosure、guid、pubDate 和 source。RSS 1.0 獲取這樣的元資料是通過定義在單獨的 XML 名字空間中稱為 RSS 模組的可增強元素來實現的。例如,在 Figure 1 中,item 的日期是用 Dublic Core 模組的 元素表示的。
有關不同格式的完整訊息請參考 RSS 1.0 和 2.0 規範。
Q:那麼,何為 Atom?
A:前面我提到過,Atom 乃一項目的名字,主要是開發一個新的網志摘要格式以解決目前 RSS 存在的問題(混亂的版本號,不是一個真正的開放標準,表示方法的不一致,定義貧乏等等)。Atom 希望提供一個清晰的版本以解決每個人的需要,其設計完全不依賴於供貨商,任何人都可以對之進行自由增強,完整詳細說明。
  當今許多 Blog 引擎已經支持現用的摘要格式。Figure 3 是一個Atom 0.3 提要例子,它與前述 Figure 1 及 Figure 2 RSS 提要等同。注意 Atom 提要用名字空間限定的,但它不使用 RDF。這使得 Atom 和 RSS 1.0 及 RSS 2.0 在某些地方有相似之處。Atom 在未來是否能被接受,人們拭目以待。
  除了定義新的摘要格式之外,Atom 還希望定義一個標準的檔案文件格式和一個標準的網志編輯 API(Atom API)。有關 Atom 詳細規範以及其它 Atom 資源請訪問 The Atom Project。
Q:什麼是 blogroll?
A:blogroll 是網志提要的集合大多數 blogger(博客)在其個人網志上都提供 blogroll。這就允許讀者連線到其他趣味和寫作風格相投的人的網志上。Blogroll 方便了網路上的溝通。通過使用Outline Processor Markup Language (OPML),人們可以用 XML 格式文件交換 blogroll。Figure 4 是 blogroll 的一個例子。
  大多數網志引擎都自己管理 blogroll,每當讀者請求 blogroll 時都自己產生相應的 XML 格式。同樣,大多數聚合器都能匯入 blogroll 並自動預定所包含的摘要。有關 OPML 更多的訊息參見

http://opml.scripting.com
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-03-03, 03:50 PM   #4 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

Q:能解釋 referrers、trackbacks 和 pingbacks 是什麼嗎?
A:大多數網志軟體都能讓讀者增加網志評論。但更一般的做法是讓讀者在其自己的網志增加一個入口回鏈到原來的帖子。博客們(Bloggers)都樂於跟蹤連接發生的時間以便新讀者能理解整個會話內容。
  所謂 referrer 是一個外部站點,用戶按下該站點上一個超連接便可以到達你的網站。許多網志引擎當讀者瀏覽到你的網志的某個入口時都能自動保持跟蹤。大多數引擎都會在網志入口底部顯示一個 referrers 清單,以便讀者能往回瀏覽到 referrer 的站點,並清楚他們關於該入口要說些什麼,這關於一個假設,那就是如果他們連接到它,可能就此會寫些什麼。referrer 存在的問題是必須要有這個假設才成立??沒有足夠的訊息說明是否引用的頁面事實上包含有關訊息。實際上,LJ訊息的發怖者為了營銷企圖已經利用了這個漏洞來重轉發IP讀者。
  Trackback 和 pingback 同一個規範,被用來彌補上述問題的方案。使用 trackback 和 pingback,其他博客們能自動傳送一個 ping 到你的網志以明確表示他們已經寫了一個引用特定帖子的入口。
  這種檔案類型的反鏈允許你的網志以更明顯的方式顯示所有評論的清單。當今大多數網志軟體支持所有這些技術。參見 TrackBack Technical Specification 和 Pingback 1.0。
Q:如何為我的站點產生 RSS 提要?
A:Figure 5 舉例說明了如何用 asp:Repeater 控件在 .aspx 頁面中產生 RSS 2.0 提要。該頁面假設你已經在後端程式碼文件中將控件的 DataSource 內容設定成對應的資料庫結果集。
Q:我想聚合幾個 RSS 提要並將資訊顯示在個人網站上,能解釋一下如何實現嗎?
A:因為 RSS 提要是 XML 文件,作為練習,你可以用自己最擅長的 XML API,比如,Microsoft .NET Framework 中的 System.Xml,Figure 6 中包含 ASP.NET Web 用戶控件程式碼,它是我編寫用來聚合 blogroll 文件中(.opml)所列出的 RSS 提要的一段程式碼。這段程式碼假設 opml 元素包含 numberToDisplay 內容,以表示你打算顯示的每個提要有多少項。
Figure 7 ASP.NET Web 用戶控件
(見下面圖片)
你可以將控件拖到任何 .aspx 頁面中,它將顯示 blogroll 文件中列出的不同提要的項,Figure 7 顯示了 Utah .NET User Group 網站使用這個控件的效果畫面。
Q:有沒有與網志交互的 Web Services APIs?
A:許多網志引擎都提供屬於自己的 Web service 接頭,通過編程與網志交互,但目前還沒有出現一種標準化的東西。
.Text 和 dasBlog 兩者都提供某些 .asmx 端點,可以通過 SOAP 來實現編輯功能,但其接頭是不同的。Blogger.com 提供關於 XML-RPC 的交互式 API (Blogger API)。Userland Software 對Blogger API 的功能進行了增強,並把它叫做 MetaWeblog API。這些可能是當今公認的網志 APIs,但仍然不是所有網志引擎都支持的。還有一個用於增加評論的獨力的 API 叫做 Comment API,同樣,它也不是被普遍支持。
  Atom 組正在努力解決這些問題,Atom API 定義了一個標準的網志 API 用於發怖和編輯網志內容。有關訊息請參考 The Atom Project 網站。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-04-29, 01:30 AM   #5 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

不可不知的Blog(部落格)知識

有關Blog的中文名稱,一直是國內各Blog站點討論的焦點,因此Blog在中國也就有了網路日誌、博錄、報客、部落以及部落格的名字。而在沒有定論之前,我更願意不改變其名稱,直接使用英文的Blog,也暗 含思想的交流沒有國界。 從字面上解釋,Blog是Weblog的簡稱,Weblog是"Web"與"Log"的組合,Log的中文詞義是"航海日誌",引申為任何檔案檔案類型的流水性記錄,因此Weblog就可以理解為網際網路上的一種流水性記錄。這種網際網路上的流水性記錄,可以視作一個以日誌形式表現的個人網頁。Blog的主人可以在Blog中將自己每天的生活體驗、靈感妙想、得意言論、網路文摘、新聞評論等所有聽到的、看到的、感受到的東西記錄下來,讀者也可以像看日誌一樣享受主人帶來的各種思想與心得。Blog的主人被稱作Blogger或Weblogger,也就是經常提到的部落客或部落格。

  那麼,Blog與個人網站有什麼不同呢?在本質上,Blog與個人網站是一樣的,它們都提供了一個思想交流與訊息共享的平台。不過個人網站的門檻較高,需要懂網頁製作的有關知識,並需要使用FTP維護,將大量時間花費在更新頁面上。Blog卻簡單許多,只要你會用電腦打字,便可在免費提供的Blog上寫下自己的感想,將感想按日期、按分類加以組織。Blog通常還支持RSS、RDF等新技術,可以將訊息更快的送到每個人手中,讓讀者既時瞭解你的所想所得。可能你會注意到,寫作Blog與BBS中發帖相似,但BBS這種交流方式難以長期保留你的文章,也不能對文章進行系統整理,Blog卻能夠輕鬆做到。BBS好比公交車,乘客可以隨便搭乘公交車,卻不能擁有公交車;Blog卻是私家車,他可以讓任何一位作者個性化自己的Blog,包括外觀、內容乃至一切。

  越來越多的人正在使用Blog,其中包括美國總統布什、微軟總裁比爾?蓋茨,Blog的影響非常大。在美國,人們通過Blog真實生動的描述著恐怖襲擊事件,並對事件做出深刻反思與討論;在伊拉克,人們利用Blog向世界傳送最新的報導,記載圍城之中巴格達的真實生活;在中國,Blog同樣活躍,許多新聞事件都是從Blog中的一篇文章開始引起人們的關注。有Blogger說,記者的作用正在削弱,取之而來的是對各種現象有敏銳洞察力的專業Blogger。Blog將對傳統媒體造成強烈衝擊,帶來網路溝通的變革。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-07-20, 12:46 AM   #6 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

利用指令行指令碼產生指定網站的RSS內容

流行的RSS

隨著各式各樣的部落格越來越紅火,作為特性之一的RSS也為越來越多的人接受和喜愛。
RSS的出現改變了人們從一個網站到另一個網站逐頁尋找自己感興趣的內容的傳統瀏覽方式,
RSS通過可訂製的聚合式內容使人們從網站跳轉中解放出來,更高效快捷的獲取訊息。
這些優勢使得RSS閱讀群不斷的擴大,各大網站看到這種趨勢也紛紛為自己的網頁加入了RSS Feed以供訂閱。

無奈的RSS

但是使用RSS自然會分走一部分網站的瀏覽量,這對於很多網站管理者來說是比較介意的,
所以還是有相當數量的網站持保留態度,暫不提供RSS內容。這對於已經體驗到RSS的好處而相當依賴的人來說不算什麼好事。
既然伸手討不到,那就只有自給自足這一條路了,我們可以利用幾個很簡單的指令行小工具來自動產生RSS。

工具的選項

PHP、ASP這些伺服器指令碼是進階貨,就是太複雜還要組態專門的環境,於是Pass。C++等進階語言門檻更高,於是也Pass。
就只有指令行指令碼易學易用,還不需要專門的執行環境資源佔用也不大,就是它了。
光靠CMD想幹這事兒還是有些困難,還是找幾位幫手來共舉大業吧:

CURL:凡是和網路上傳下載沾邊的找它準沒錯
ICONV:網頁編碼何其多,就靠它來統一格式了

有這兩位幫忙,CMD指令碼便是如虎添翼,能人所不能。

設計的思法

無論什麼軟體都不肯能套用於所有的情況,對於批次處理類的指令碼來說更是如此。往往一個指令碼只能對應一個或一類網站。
所以清晰的思法就異常的重要,有了好的思法就可以反覆套用,所需很少工作量就可以修改適應到其他的網站上。
下面以CCF精品技術論壇為例,嘗試產生新帖子的RSS內容。

獲取頁面

要處理內容首先就得獲取頁面,CURL便是專司此職的。我們只需要下面這個簡單的指令就可以獲取CCF的『軟體使用』子論壇的首頁。


CODE:
curl -b cookie@et8.txt -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -e "http://bbs.et8.net/" -o tmp1.txt http://bbs.et8.net/bbs/forumdisplay.php?f=17^&page=1^&pp=200^&daysprune=-1
[Copy to clipboard]


cookie@et8.txt是IE的Cooke文件,對於論壇等需要的登入的網站很有就靠它提供用戶名密碼。
取得的內容由
CODE:
-o tmp1.txt
[Copy to clipboard]
指定儲存在 tmp1.txt 中。

編碼處理

由於指令行不能很好的處理 unicode。所以需要用 ICONV 把文本轉為 ANSI:


CODE:
iconv -c -f UTF-8 -t GB2312 tmp1.txt >temp.txt
[Copy to clipboard]


這樣我們就將剛才獲取的 tmp1.txt 從 UTF-8 轉為了 GB2312 並另存為 temp.txt。

最後訪問的帖子

既然是訂閱新帖子的RSS,那麼便需要讀取上一次最後列出的帖子,假設我們把上次訪問的帖子的ID儲存在 last.txt 中:


CODE:
for /f "delims=" %%z in (last.txt) do (set last=%%z)
set lastcheck=!last!
[Copy to clipboard]


我們用 last 和 lastcheck 兩個增強環境變數來儲存獲得的ID。

尋找新帖

知道了上次最後訪問的ID,我們就可以通過搜尋 temp.txt 中的首頁前 200 個帖子的ID,以比較的方式篩選出新帖。
同時不要忘了將最新的一篇的ID記錄下來,以便寫入 last.txt 供下次使用。
對於RSS來說,只有題目和位址是不夠的,我們還需要作為摘要的文字,所以我們需要再次使用 CURL 和 ICONV,
獲取新帖的頁面,來做成完整的RSS內容,同時以 echo 到文件的方式新增 XML 格式。


CODE:
for /f "tokens=2-5 delims==<" %%i in ('findstr "showthread.php?s" temp.txt') do (
set tmp=%%l
set post=!tmp:~0,6%!
set title=!tmp:~8!
set flag=0
set first=1
if "%%i"=="a href" if /i !post! GTR !last! if NOT "!post!"=="lastpo" (
if !post! GTR !lastcheck! set lastcheck=!post!
echo.
(echo.^<item^>
echo.^<title^>!title!^</title^>
echo.^<link^>http://bbs.et8.net/bbs/showthread.php?t=!post!^</link^>
echo.^<description^>
echo.^<[CDATA[) >>tmp.xml
curl -b cookie@et8.txt -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -e "http://bbs.et8.net/" -o tmp1.txt http://bbs.et8.net/bbs/showthread.php?t=!post!
iconv -c -f UTF-8 -t GB2312 tmp1.txt >tmp.txt
for /f "delims=" %%m in (tmp.txt) do (
@echo %%m >tmpl.txt
for /f "tokens=1-2 delims=-" %%n in (tmpl.txt) do (
if "%%o"==" message " set flag=1
if "%%o"==" / message " set first=0
if !first!==1 if !flag!==1 if NOT "%%o"==" message " @echo %%m >>tmp.xml
)
)
echo.
(echo.]]^>
echo.^</description^>
echo.^<pubDate^>^</pubDate^>
echo.^<author^>^</author^>
echo.^</item^>)>>tmp.xml
)
)
@echo !lastcheck! >last.txt
[Copy to clipboard]


通過份析頁面的內容,可以發現主樓的文字是用 <!-- message --> 和 <!-- / message --> 作為開始和結束的標示的。
所以用 flag 和 first 兩個增強環境變數來做雙閘開關,控制文字的輸出。

XML的格式化

最後用一個 for 語句將 tmp.xml 格式化為符合 RSS 2.0。

CODE:
echo.
(echo.^<?xml version="1.0" encoding="GB18030"?^>
echo.^<rss version="2.0"^>
echo.^<channel^>
echo.^<title^>CCF精品技術論壇^</title^>
echo.^<link^>http://bbs.et8.net/^</link^>
echo.^<description^>CCF ClassiClubForm forum^</description^>
echo.^<language^>zh-cn^</language^>) >rss2.xml

for /f "delims=" %%x in (tmp.xml) do (
if %%x==^<[CDATA[ (
@echo ^<![CDATA[ >>rss2.xml
) else (
@echo %%x >>rss2.xml
)
)

echo.
(echo.^</channel^>
echo.^</rss^>)>>rss2.xml
[Copy to clipboard]


完整的指令碼


CODE:
@echo off

setlocal ENABLEDELAYEDEXPANSION

curl -b cookie@et8.txt -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -e "http://bbs.et8.net/" -o tmp1.txt http://bbs.et8.net/bbs/forumdisplay.php?f=17^&page=1^&pp=200^&daysprune=-1
iconv -c -f UTF-8 -t GB2312 tmp1.txt >temp.txt
for /f "delims=" %%z in (last.txt) do (set last=%%z)
set lastcheck=!last!

for /f "tokens=2-5 delims==<" %%i in ('findstr "showthread.php?s" temp.txt') do (
set tmp=%%l
set post=!tmp:~0,6%!
set title=!tmp:~8!
set flag=0
set first=1
if "%%i"=="a href" if /i !post! GTR !last! if NOT "!post!"=="lastpo" (
if !post! GTR !lastcheck! set lastcheck=!post!
echo.
(echo.^<item^>
echo.^<title^>!title!^</title^>
echo.^<link^>http://bbs.et8.net/bbs/showthread.php?t=!post!^</link^>
echo.^<description^>
echo.^<[CDATA[) >>tmp.xml
curl -b cookie@et8.txt -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -e "http://bbs.et8.net/" -o tmp1.txt http://bbs.et8.net/bbs/showthread.php?t=!post!
iconv -c -f UTF-8 -t GB2312 tmp1.txt >tmp.txt
for /f "delims=" %%m in (tmp.txt) do (
@echo %%m >tmpl.txt
for /f "tokens=1-2 delims=-" %%n in (tmpl.txt) do (
if "%%o"==" message " set flag=1
if "%%o"==" / message " set first=0
if !first!==1 if !flag!==1 if NOT "%%o"==" message " @echo %%m >>tmp.xml

)
)
echo.
(echo.]]^>
echo.^</description^>
echo.^<pubDate^>^</pubDate^>
echo.^<author^>^</author^>
echo.^</item^>)>>tmp.xml
)
)

@echo !lastcheck! >last.txt
endlocal

echo.
(echo.^<?xml version="1.0" encoding="GB18030"?^>
echo.^<rss version="2.0"^>
echo.^<channel^>
echo.^<title^>CCF精品技術論壇^</title^>
echo.^<link^>http://bbs.et8.net/^</link^>
echo.^<description^>CCF ClassiClubForm forum^</description^>
echo.^<language^>zh-cn^</language^>) >rss2.xml

for /f "delims=" %%x in (tmp.xml) do (
if %%x==^<[CDATA[ (
@echo ^<![CDATA[ >>rss2.xml
) else (
@echo %%x >>rss2.xml
)
)

echo.
(echo.^</channel^>
echo.^</rss^>)>>rss2.xml

del temp.txt
del tmp1.txt
del tmp.txt
del tmpl.txt
del tmp.xml
[Copy to clipboard]

儲存為et8-rss.cmd即可雙按執行。

RSS的使用

每次想要閱讀之前只要先執行一遍 et8-rss.cmd 就可以更新 RSS 列出新帖。
產生的 rss2.xml 可以增加到 RSS 閱讀器中,比如用 Firefox 的 Sage 增強來閱讀:


http://chenkeikari.homeftp.org/article/cmdrssgenerator/images/sage.png
本文為chenke_ikari原創,首發於豆腐的簡陋小屋
本文采用Creative Commons 署名-非商業性使用-相同方式共享 2.5 China 許可傳輸協定 進行許可
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 12:13 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1