Posted on 2007-02-06 12:57
dennis 閱讀(321)
評論(0) 編輯 收藏 所屬分類:
動態語言
?雖然sohu不大可能倒閉,但是我也想導出我所有的文章,備份在自己的數據庫中。javaeye的blog系統提供了一個blog導入導出的功能,用起來很酷。其實你自己用ruby寫一下也很簡單,比如我要讀取我的blog的RSS源:

require?'rss/2.0'
require?'open-uri'
url?=?'http://dennnis-zane.blog.sohu.com/rss'
feed?=?RSS::Parser.parse(open(url).read,?false)?
puts?"===?blog名稱:?#{feed.channel.title}?==="?
feed.items.each?do?|item|?
????puts?item.title?
????puts?"?(#{item.link})"
????puts?puts?item.description?
end?

feed.items對應rss2.0的item元素,每個item元素描述了一篇文章的標題,鏈接,內容等信息,你可以通過item.title,item.link等來讀取,并存入你自己的數據庫。
再給一個使用代理的例子,因為我的機子是使用代理上網的:
require?'rss/2.0'
require?'net/http'
url?=?'http://dennnis-zane.blog.sohu.com/rss'
$proxy_addr?=?'172.16.51.10'
$proxy_port?=?807

response?=?Net::HTTP.Proxy($proxy_addr,?$proxy_port).get_response(URI.parse("http://dennnis-zane.blog.sohu.com/rss"))
feed?=?RSS::Parser.parse(response.body,?false)
puts?"===?Channel:?#{Iconv.conv('GBK','UTF-8',feed.channel.title)}?==="
feed.items.each?do?|item|
??puts?Iconv.conv('GBK','UTF-8',item.title)
??puts?"?(#{item.link})"
??puts
?#?puts?Iconv.conv('GBK','UTF-8',item.description)
end打印:
=== Channel: 花非花 ===
websphere錯誤備忘錄
?(http://dennnis-zane.blog.sohu.com/29898836.html)
感冒,寒冷的夜
?(http://dennnis-zane.blog.sohu.com/29859082.html)
ECMAScript對象基礎
?(http://dennnis-zane.blog.sohu.com/29499101.html)
用ruby創建領域特定語言(DSL)——轉載
?(http://dennnis-zane.blog.sohu.com/29350052.html)
使用ruby解析json
?(http://dennnis-zane.blog.sohu.com/29200192.html)
ruby實現抽象類和抽象方法
?(http://dennnis-zane.blog.sohu.com/29145303.html)
看了《父子》,看了《綠帽子》
?(http://dennnis-zane.blog.sohu.com/29047444.html)
ECMAScript基礎
?(http://dennnis-zane.blog.sohu.com/28876856.html)
假期結束,專心工作
?(http://dennnis-zane.blog.sohu.com/28604494.html)
不解
?(http://dennnis-zane.blog.sohu.com/27564529.html)