ちょっと前に話題になったUser Interface Iconsから、アイコンをZIPでダウンロードしようとしたら、なんか変なソフトをインストールするようにいわれてゲンナリしたので、ひさしぶりにRubyでページ内の画像をすべて取得するスクリプトを書きました。
#! /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__
なんの見所もありませんが、、こんな捨てプログラムでも、久しぶりに書いたら楽しかったですって話。
コメント
コメント一覧 (1件)
Windows版では、ファイルを開くところをバイナリー・モードにしないと、うまく画像ファイルが保存されないようでした。
具体的には、
open(savepath + filename, ‘w+b’) do |output|
です。
Googleで、「ruby 画像 ダウンロード スクリプト」検索すると、このページがトップに来ていたので、誰かの役にたつことを祈りつつ、ご参考までにコメントしてみました。