toRuby

今日はtoRubyでHpricotを使ったスクレイピングを題材に池澤さん提供のソースを写経してみた。面白かった。
自分もなにかスクレイピングするものが無いか考えたが、あまりなかった。が、ちょっとやってみた。

require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'date'

class PeanutsStrip
  def host
    'http://comics.com'
  end

  def strip_day(date)
    url = host + '/peanuts/' +
      "#{date.year}-#{date.month}-#{date.day}"
    open(url)
  end

  def strip_image_url(date)
    doc = Hpricot(strip_day(date))
    div = doc.at('div.STR_Comic')
    div.at('/a[@class="STR_StripImage"]/img')['src']
  end
end

if __FILE__ == $0
  date_str = ARGV.shift
  pnt = PeanutsStrip.new
  p pnt.strip_image_url(Date.strptime(date_str, '%Y/%m/%d'))
end

引数に '1984/12/24'とか日付を渡し実行すると、その日のピーナッツ画像URLを持ってくる。
なんの役に立つかは不明。