■
rubyでflickrから画像取得するプログラム書きました。
クエリ投げて帰ってきた1ページ目の画像を取得します。
全部取ってきたい場合は次へボタン押すなりなんなりして。
@queryを変えるといろいろ取得できます。
@savepathも変更したほうがいいです。
ちなみに一個ずつ取ってくると一つあたり数秒かかるので
すぐに大量にとってきたいときは、並列化したほうが…
けどあまり負荷かけすぎもよくないのでその辺は考慮して
require 'rubygems' require 'hpricot' require 'mechanize' require 'open-uri' require 'benchmark' @savepath = 'graphics/' @count=0 def crawlGraphics(image_url_list) image_url_list.each do |image_url| filename = File.basename(image_url) open(@savepath + filename, 'w') do |output| p "save Image" open(image_url) do |data| output.write(data.read) end puts("#{filename} save.") @count+=1 end end end @agent=WWW::Mechanize.new() @agent.user_agent_alias='Windows IE 7' @query="google" url="http://www.flickr.com/search/?q="+@query.to_s @page=@agent.get(url) img_list=[] (@page/"img.pc_img").each do |img| img_list << img[:src] end p "getgraphics" crawlGraphics(img_list)