-
妈妈再也不愁闷你在烂电影上浪费时候了 [用Ruby批量获取电影的评分与影片信息]
添加时间:2013-5-6 点击量:信赖很多像我一样的技巧宅喜好窝家里看电影,如今的硬盘随随便便都是几百G好几T的,里面没个百部八十的都不好意思跟人打号召。下得多了,但好电影真的不久不多,希罕是像我这个分类文件夹里,很多看完发明真的是浪费时候。用ruby写了个小法度,从豆瓣电影上扒评分跟影片信息,将它们拼接成一个html网页,处理惩罚一个文件夹里的电影后能获得类似于下面的成果:
你也可以扩充后,添加譬如:
1.在你硬盘每个电影文件名前面添加评分,如许你就可以经由过程点按名称排序来实现评分排序了
2.可以主动删除小于5/6分的电影
3....等
下面把代码贴出来,你须要用到的ruby库有:nokogiri(用来解析html),iconv(用来转码)
#encoding: utf-8
require open-uri
require nokogiri
require uri
require iconv
def findMovieInfo(name)
moviename= URI::escape(name)
url=http://movie.douban.com/subject_search?search_text=#{moviename}&cat=1002
puts url
doc = Nokogiri::HTML(open(url))
item= doc.xpath(//tr[@class=item])
if(item.count>0)
return item[0].to_html()
end
return
end
fh = File.new(C:\\temp.html, w)
fh.write <!DOCTYPE html>
<html lang=zh-CN class=ua-windows ua-webkit>
<head>
<meta http-equiv=Content-Type content=text/html; charset=utf-8>
</head>
<body>
<table>
@directory_path = D:\\\\
if File.directory? @directory_path
Dir.foreach(@directory_path) do |file|
begin
if(File.basename(file)!=.&&File.basename(file)!=..)
conv = Iconv.new(utf-8, gb2312)
name= File.basename(file).gsub(File.extname(file),)
name=conv.iconv(name)
fh.write findMovieInfo(name)
fh.flush
end
rescue
puts 错误,跳过
end
end
end
fh.write </table></body></html>
fh.close()若是对你有效,看在帮你节俭看烂片时候的份上,请不要悭吝3秒钟帮我点下推荐
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》