Ruby 画像をダウンロードする方法

Rubyで画像をダウンロードするにはopen-uriを使います。

ダウンロードの仕方

open-uriopenメソッドを使います。仮想のURL http://example.com/example.jpg をダウンロードする例。

require "open-uri"
image = open("http://exmple.com/example.jpg")

ダウンロード後にファイルに保存する方法

次のように、バイナリモードで開いたファイルに保存します。

require "open-uri"
open("http://exmple.com/example.jpg") { |image|
 File.open("something.jpg","wb") do |file|
  file.puts image.read
 end
}

解説

  1. openの戻り値(TempFileクラス)をimageに格納します。
  2. File.openwb 引数付きで呼び something.jpg ファイルをバイナリモードで開きます。
  3. 画像データをimage.readで取り出し、file.putsで開いたファイルに流し込みます。