开发者社区> boxti> 正文

使用ruby备份你的blog

简介:
+关注继续查看
虽然sohu不大可能倒闭,但是我也想导出我所有的文章,备份在自己的数据库中。javaeye的blog系统提供了一个blog导入导出的功能,用起来很酷。其实你自己用ruby写一下也很简单,比如我要读取我的blog的RSS源:
None.gif
None.gifrequire 
'rss/2.0'
None.gifrequire 
'open-uri'
None.gifurl 
= 'http://dennnis-zane.blog.sohu.com/rss'
None.giffeed 
= RSS::Parser.parse(open(url).read, false
None.gifputs 
"=== blog名称: #{feed.channel.title} ===" 
None.giffeed.items.each 
do |item| 
None.gif    puts item.title 
None.gif    puts 
" (#{item.link})"
None.gif    puts puts item.description 
None.gifend 
None.gif

feed.items对应rss2.0的item元素,每个item元素描述了一篇文章的标题,链接,内容等信息,你可以通过item.title,item.link等来读取,并存入你自己的数据库。

再给一个使用代理的例子,因为我的机子是使用代理上网的:

None.gifrequire 'rss/2.0'
None.gifrequire 
'net/http'
None.gifurl 
= 'http://dennnis-zane.blog.sohu.com/rss'
None.gif$proxy_addr 
= '172.16.51.10'
None.gif$proxy_port 
= 807
None.gif
None.gifresponse 
= Net::HTTP.Proxy($proxy_addr, $proxy_port).get_response(URI.parse("http://dennnis-zane.blog.sohu.com/rss"))
None.giffeed 
= RSS::Parser.parse(response.body, false)
None.gifputs 
"=== Channel: #{Iconv.conv('GBK','UTF-8',feed.channel.title)} ==="
None.giffeed.items.each 
do |item|
None.gif  puts Iconv.conv(
'GBK','UTF-8',item.title)
None.gif  puts 
" (#{item.link})"
None.gif  puts
None.gif # puts Iconv.conv(
'GBK','UTF-8',item.description)
None.gifend



打印:

=== 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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境
在每个开发者心里,都会有一门“最好”的语言,在这个世界的某个深处,在一些矫矫不群的人们心中,这门语言的名字叫做Ruby,它今年二十八岁了,历史和Java一样的悠久,但是它没有大厂背书、它的性能被开发者诟病、时至今日依然无法高效利用多核资源,甚至于它每年都要被“死亡”一次,相比于有太阳计算机系统、甲骨文、IBM 这些大公司支持的 Java,它是那么的一无所有,但是,它又拥有全世界最虔诚的“信徒”,拥有最活跃的开发者社区,这一切,又让它是那么的应有尽有。是的,这就是Rubyist的理念:有的时候,你想证明给一万个人看,到后来,你发现只得到了一个明白的人,那就够了。
62 0
基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境
2023年,“非著名Web框架”--Ruby on Rails已经18岁了。在今年,Rails 6.0趋于完善,除了拿掉讨厌的Jquery,Webpacker 也成为默认前端打包方案,Sprockets 开始软着陆,未来很可能会和Jquery一样被彻底废弃,这就是历史的进程。
39 0
CVE-2018-3760 Ruby On Rails 路径穿越漏洞
CVE-2018-3760 Ruby On Rails 路径穿越漏洞
48 0
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞
52 0
【Ruby on Rails全栈课程】5.5 项目上线--nginx+unicorn部署项目、域名映射
1、域名映射准备材料 云服务器以及域名(参考5.1 购买服务器、域名) nginx unicorn 2、安装以及设置nginx
170 0
【Ruby on Rails全栈课程】5.4 项目上线--项目初始化
1、数据库初始化 (1)登录数据库,创建名为data_system的database
64 0
【Ruby on Rails全栈课程】5.3 项目上线--git部署项目
1、git分布式版本控制系统是什么? 现在本地电脑1有一套data_system的代码,如果想把这套代码放到云服务器上,应该怎么做呢? 最简单的做法是直接将本地电脑1上的代码拷贝到服务器上。 但是我们拷贝完成后发现了一个bug1,在本地电脑1的代码中修复了之后。需要与云服务器上的代码同步,还是要将本地电脑1的代码拷贝到服务器上吗? 团队的另一个人修改了bug2,没有修改bug1,他如果将自己本地电脑2的代码拷贝到服务器上,就会将你刚刚修改的bug1代码覆盖掉。 所以我们现在需要一个第三方先将代码处理整合一下,将我们自己的代码与团队其他人的代码整合起来,再通过git pull操作将整合后
76 0
【Ruby on Rails全栈课程】5.1 项目上线--购买服务器、域名
项目完成后,如果希望别人能通过域名访问到我们的项目,那就要将项目上线,需要准备两个工具: 云服务器 已备案的域名
77 0
+关注
boxti
12535
文章
问答
文章排行榜
最热
最新
相关电子书
更多
CentOS Nginx PHP JAVA多语言镜像使用手册
立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手
立即下载
低代码开发师(初级)实战教程
立即下载