プログラミング的なSomething

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

指定したサイト上のjpgのリンク先を一気に保存するスクリプト

ファイルを保存する作業って案外大変ですよね。というわけでスクリプトを書いてみました。友人から着想を得てから一気に書いたのでかなり粗びきですが、公開公開。

require 'nokogiri'
require 'open-uri'
require 'date'

class Test

@ary = Array.new

# 指定したサイトの画像ファイルリンクの一覧の取得する
  def get_url
    html = Nokogiri::HTML(open'http://<指定したサイト>.html')
    ary = Array.new

    html.search("a").each do |img|
      if /\.(jpg|png|gif)$/ =~ img['href']
        ary << img['href']
      end
    end
    @ary = ary
  end

# ファイルの書き出しを行う
  def file_get(ary)
    ary.each do |url|
      p url
# ファイル名を決定(オリジナルのファイル名を採用)
      filename = File.basename(url)
# ファイルを保存するディレクトリ名を指定
      dirname = "/Users/hoge/hogehoge/imag/" + filename
      open(dirname, 'wb') do |file|
        open(url) do |data|
          file.write(data.read)
        end
      end
    end
  end
end

以上です。Nokogiriが本当に便利でした。かなりパワフル。
今後はサイトの指定とか、ダウンロードしたファイルの確認ができるUIを作って、簡単なDLクライアントアプリケーションにしていこうかな。とりあえずは自分の作業低減に一役も二役も買ってくれそうで満足です。