虽然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












feed.items对应rss2.0的item元素,每个item元素描述了一篇文章的标题,链接,内容等信息,你可以通过item.title,item.link等来读取,并存入你自己的数据库。
再给一个使用代理的例子,因为我的机子是使用代理上网的:















打印:
=== 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)
文章转自庄周梦蝶 ,原文发布时间5.17