読者です 読者をやめる 読者になる 読者になる

Ruby で Tumblr をスクレイピング

いや API 使えよという話なのですが。スクレイピングの練習として。

$ ruby scraping.rb hogehoge

hogehoge というユーザーの最近の画像を scraping.rb と同じ階層に保存します。

require 'nokogiri'
require 'open-uri'
require 'net/http'

def save_image (url)
  fileName = File.basename(url)
  open(fileName, 'wb') do |file|
    file.puts Net::HTTP.get_response(URI.parse(url)).body
  end
  sleep 1
end

range = 1..5
range.each do |i|
  url = "http://#{ARGV[0].chomp}.tumblr.com/page/" + i.to_s
  doc = Nokogiri::HTML(open(url))
  doc.css('img').each do |j|
    target = j.attributes['src'].to_s
    begin
      save_image(target)
    rescue => e
      puts e
    end
  end
end