Posted on 2007-02-06 12:57
dennis 閱讀(320)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
動(dòng)態(tài)語(yǔ)言
?雖然sohu不大可能倒閉,但是我也想導(dǎo)出我所有的文章,備份在自己的數(shù)據(jù)庫(kù)中。javaeye的blog系統(tǒng)提供了一個(gè)blog導(dǎo)入導(dǎo)出的功能,用起來(lái)很酷。其實(shí)你自己用ruby寫(xiě)一下也很簡(jiǎn)單,比如我要讀取我的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對(duì)應(yīng)rss2.0的item元素,每個(gè)item元素描述了一篇文章的標(biāo)題,鏈接,內(nèi)容等信息,你可以通過(guò)item.title,item.link等來(lái)讀取,并存入你自己的數(shù)據(jù)庫(kù)。
再給一個(gè)使用代理的例子,因?yàn)槲业臋C(jī)子是使用代理上網(wǎng)的:
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錯(cuò)誤備忘錄
?(http://dennnis-zane.blog.sohu.com/29898836.html)
感冒,寒冷的夜
?(http://dennnis-zane.blog.sohu.com/29859082.html)
ECMAScript對(duì)象基礎(chǔ)
?(http://dennnis-zane.blog.sohu.com/29499101.html)
用ruby創(chuàng)建領(lǐng)域特定語(yǔ)言(DSL)——轉(zhuǎn)載
?(http://dennnis-zane.blog.sohu.com/29350052.html)
使用ruby解析json
?(http://dennnis-zane.blog.sohu.com/29200192.html)
ruby實(shí)現(xiàn)抽象類(lèi)和抽象方法
?(http://dennnis-zane.blog.sohu.com/29145303.html)
看了《父子》,看了《綠帽子》
?(http://dennnis-zane.blog.sohu.com/29047444.html)
ECMAScript基礎(chǔ)
?(http://dennnis-zane.blog.sohu.com/28876856.html)
假期結(jié)束,專心工作
?(http://dennnis-zane.blog.sohu.com/28604494.html)
不解
?(http://dennnis-zane.blog.sohu.com/27564529.html)