1. rss訂閱 一般我們?cè)谠S多站點(diǎn)上能看到一個(gè)RSS標(biāo)志,它提供一種push和pull的方式來閱讀特定主題的最新文章(如博客等)。有許多的rss閱讀器可以處理這種rss feed,包括在線的閱讀器如google reader,及本地閱讀器如各主流郵件客戶端thunderbird/outlook/Foxmail等都有相關(guān)功能。 rss訂閱的原理是:閱讀器或者瀏覽器輸入一個(gè)rss feed網(wǎng)址時(shí),服務(wù)器那邊會(huì)返回一個(gè)xml文件。這個(gè)文件具有特定的格式,基本上來說,它包含一個(gè)列表,列表每一項(xiàng)都是一篇文章的描述,其中有文章標(biāo)題,正文登信息。 但是,服務(wù)器不會(huì)把它所有的文章列表都發(fā)給客戶端,原因當(dāng)然主要是性能考慮,一般只會(huì)把最近的文章列表發(fā)給客戶端。那么,客戶端這邊通過這個(gè)rss feed只能看到最近的文章。那么,怎么樣能看到以前的文章呢? 2. google reader google reader提供了很強(qiáng)大的rss訂閱功能,它不僅可以看到最新的更新,還可以看到很久以前的文章。只要你拖動(dòng)reader里面的滾動(dòng)條,到達(dá)最下邊時(shí),如果還有以前的文章,google reader會(huì)自動(dòng)去下載下來。 Google reader為什么可以做到別的rss閱讀器無法做到的事情呢?這要?dú)w功于google童鞋強(qiáng)大的搜索功能。它每天都在爬網(wǎng)絡(luò),把相關(guān)網(wǎng)站數(shù)據(jù)存入了它的數(shù)據(jù)庫中。因而,google reader可以顯示以前的文章。 Google reader可以說是最好的在線閱讀器了。但是它的一個(gè)問題是,它默認(rèn)也只顯示最近若干文章,想看以前文章的話,只能通過滾動(dòng)條向下,要重新載入,比較慢。而且,部分童鞋喜歡在本地閱讀文章,尤其是那些經(jīng)典的文章需要本地保存以方便隨時(shí)翻閱。這樣google reader就不能勝任了。該怎么解決呢?估計(jì)大家已經(jīng)想到了一個(gè)辦法,能不能直接借助google的能力把以前的文章拿下來放到本地rss閱讀器中呢。答案是可以的。 3. 抓取google reader的數(shù)據(jù) 這里有兩種方式,比較推薦第二種。當(dāng)然,對(duì)于程序大牛們來說,第一種方式無疑自由度更大一些。 方式一:利用google reader API,這個(gè)比較復(fù)雜,請(qǐng)參考http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI。 方式二:直接用google提供的鏈接。 鏈接的格式是:【http://www.google.com/reader/atom/feed/ + 你的RSS + ?n= + 你所需要的文章條目數(shù)量】, 比如我想抓取http://blogs.msdn.com/vcblog/rss.xml這個(gè)rss feed下的最新100篇文章, 在瀏覽器中輸入http://www.google.com/reader/atom/feed/http://blogs.msdn.com/vcblog/rss.xml?n=100 。 需要注意的是,如果你要訂閱的rss地址中含有?的話,記得把?替換為%3F。 然后,google童鞋就會(huì)幫我們查詢它的數(shù)據(jù)庫,然后返回文章列表。返回的內(nèi)容也是一個(gè)xml文件,如果你的瀏覽器沒有設(shè)置默認(rèn)打開方式的話,可以把這個(gè)文件下載下來。比如在Firefox中,可以通過查看頁面源代碼,然后另存為xml文件即可。 這個(gè)xml文件包含了訂閱的文章列表的所有信息,有了這個(gè)xml文件之后,可選的處理方式更多了。比如可以通過自己寫一個(gè)小程序,或者通過一個(gè)xls樣式來顯示它即可,也可以把這個(gè)xml文件送個(gè)本地rss閱讀器。 下面我采用的是thunderbird作為rss閱讀器。 4. thunderbird訂閱 thunderbird訂閱方式比較簡(jiǎn)單,設(shè)置一個(gè)單獨(dú)的賬戶(不是郵件賬戶),然后賬戶上右鍵點(diǎn)擊“訂閱”,添加一個(gè)訂閱網(wǎng)址即可。 問題一:thunderbird不能直接通過剛才的google鏈接來訂閱,不確定原因。報(bào)出的錯(cuò)誤大致意思是說該鏈接不是合法的訂閱地址。 問題二:thunderbird不能直接導(dǎo)入我們之前拿到的訂閱的文章列表xml文件。盡管thunderbird在管理訂閱時(shí),支持導(dǎo)入導(dǎo)出功能,但是導(dǎo)入導(dǎo)出的格式都是opml格式,文件中只含有訂閱的網(wǎng)址等信息,沒有文章內(nèi)容。 解決辦法是:把xml文件放到某個(gè)服務(wù)器上(比如自己的服務(wù)器),把url記錄下來,讓thunderbird訂閱即可。 5. 收尾工作 重新訂閱原來的網(wǎng)站那個(gè)rss feed,把剛才自己服務(wù)器上訂閱的內(nèi)容移到這個(gè)文件夾下面,然后刪除對(duì)自己服務(wù)器的訂閱。這樣以后就可以直接看到 原來rss feed的更新內(nèi)容,而且原來的文章也保存下來了。 如果各位有更好的方法,請(qǐng)不吝指教~ |
聯(lián)系客服