ページ内の画像を一括してダウンロードするRubyスクリプト

ちょっと前に話題になったUser Interface Iconsから、アイコンをZIPでダウンロードしようとしたら、なんか変なソフトをインストールするようにいわれてゲンナリしたので、ひさしぶりにRubyでページ内の画像をすべて取得するスクリプトを書きました。

-- get_uii_icons.rb
#! /usr/local/env ruby
require 'open-uri'
require 'cgi'
def main
url      = 'http://www.userinterfaceicons.com/'
toppage  = 'preview.php'
savepath = 'C:\temp\uii_icon\\'
# get image url list
image_url_list = []
open(url + toppage) do |page|
page.each_line do |line|
image_url_list << URI.escape(url + $1) if line =~ /(80x80\/.+?\.png)/
end
end
# get image file
image_url_list.each do |image_url|
filename = File.basename(image_url)
open(savepath + filename, 'w') do |output|
open(image_url) do |data|
output.write(data.read)
end
puts("#{filename} has saved.")
end
end
end
main
__END__

なんの見所もありませんが…(笑)

こんな捨てプログラムでも、久しぶりに書いたら楽しかったですって話。

気に入ったらシェアお願いします!

この記事を書いた人

こんにちは!カノといいます👓
インターネットやテクノロジー、ビジネスモデルや歴史(世界史・日本史)、美術などが好きです。メガネのせいか真面目っぽく見えるらしいですが、基本的には昔からいい加減な性格です。
このブログは昔からずっと個人的な日記みたいな感じで書いてきていて、基本的には個人的なログになりますが、興味のあるところだけ読んでいただけるとうれしいです。コメントやTwitterのフォローなどは大歓迎です。

コメント

コメント一覧 (1件)

  • Windows版では、ファイルを開くところをバイナリー・モードにしないと、うまく画像ファイルが保存されないようでした。
    具体的には、
     open(savepath + filename, ‘w+b’) do |output|
    です。
    Googleで、「ruby 画像 ダウンロード スクリプト」検索すると、このページがトップに来ていたので、誰かの役にたつことを祈りつつ、ご参考までにコメントしてみました。

コメントする

目次