注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

使用Ruby抓取Douban_FM音乐  

2012-01-30 21:20:04|  分类: Ruby |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
参考Java版本 http://zhenghaoju700.blog.163.com/blog/static/135859518201192214757454/

Ruby版本 依赖JSON
先安装JSON
gem install JSON

解析JSON,并将数据存入Excel中
在安装 spreadsheet
gem install spreadsheet

#coding: utf-8
require 'open-uri'
#require 'win32ole'
require 'json'
require 'spreadsheet'


#解析Douban FM的Ajax请求
def getDoubanFMJSON
playlist = ""
open('http://douban.fm/j/mine/playlist?type=n&channel=1') do |f|
playlist = f.read
end

#转换json成ruby对象 (hash)

return songList = JSON::Ext::Parser.new(playlist).parse()
end

def getExcelSheet(book)
sheet1 = book.create_worksheet :name => 'Douban FM Song List'
return sheet1
end

def saveExcel(book)
book.write 'songList.xls'
end

def setDataToExcel(sheet, data, offset)
songs = data["song"]
songs.each_index do |index|
song = songs[index]
row = sheet.row(index + offset)
row.concat "#{song['title']}%%#{song['artist']}

%%#{song['url']}%%#{song['length']}%%#{song['public_time']}%%#{song['albumtitle']}".split('%%')
end
end


#使用spreadsheet操作Excel程序
book = Spreadsheet::Workbook.new

#得到Excel Sheet对象

sheet1 = getExcelSheet(book)
#set column name
sheet1.row(0).concat %w{Name Artist URL Length Public_time Albumtitle}
offset = 1
for i in 1..10 do
data = getDoubanFMJSON
setDataToExcel(sheet1, data, offset)
offset += data["song"].length
end

#保存Excel

saveExcel(book)


#another way to use excel
#excel = WIN32OLE.new("Excel.Application")
#excel.visible = true
#workbook = excel.Workbooks


打开songList.xls
使用Ruby抓取Douban_FM音乐 - 星期五 - 星期五
 
参考资料
http://rubyer.me/blog/1223
http://flori.github.com/json/doc/index.html
  评论这张
 
阅读(287)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017