首页 > 新闻动态 >  

新闻动态
NEWS

妈妈再也不愁闷你在烂电影上浪费时候了 [用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.htmlw
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-8gb2312
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秒钟帮我点下推荐

真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》
分享到: