ニコニコ動画のスクレイピング
本当はテスト勉強しないといけないんですが、BGMがほしいなと思ったので、洋楽のマイリストから一括でダウソするコード書きました。
これだけの行数で実現できるとは、さすがruby。
require 'rubygems' require 'open-uri' require 'rss' require 'niconico' page = RSS::Parser.parse("http://www.nicovideo.jp/mylist/×××?rss=2.0",false) nico = Niconico.new("メールアドレス","パスワード") nico.login #すでに取得しているファイルがあったらスキップするために #ダウソ済みファイルのidを配列で持つ currents = Dir.entries(".").select{|x| x.include?("mp4") }.map{|y| y.split(".").first} page.items.each do |item| id = item.link.split("/")[-1] next if currents.include?(id) begin video = nico.video(id) open("#{id}.mp4","w"){|f| f.write video.get_video} rescue next end
最初、URLをまず一括で取得して、こいつを某ダウンロードサイトのフォームにぶち込んで、POST、
生成されたリンクからダウソ、とか思ってたんですが、rubygemsにniconicoというのがありまして・・・。
これはNiconicoクラスが管理全般のもので、こいつのインスタンスを一度作ってやれば、
それを介してvideoを取得できる。
ダウンロードにはけっこう時間がかかります。
ちなみにダウンロード先は、このコードを置いた場所になります。
てか、?rss=2.0を付加すればRSSで取得できるって、知らなかったです。。。
※違法ダウンロードはやめましょう。