PRMLのfigureをゆーっくり落としてくる

ネットに繋がらないところでゼミの準備とかをしていて、「あ、PRMLのこの図を今の資料に入れたい!でも、ネットつながらねー」ということが時々あるので、じわじわと落としてくるスクリプトを書いた。寝る前にでも走らせておいてください。くれぐれもゆーっくり。

require 'rubygems'
require 'mechanize'
require 'hpricot'

url = "http://research.microsoft.com/en-us/um/people/cmbishop/PRML/webfigs.htm"

agent = WWW::Mechanize.new
source = Hpricot(agent.get_file(url))

(source/"tr/td/a").each{ |item|
  if item["href"] =~ /^\.\/(prmlfigs-png\/Figure.*?\.png)$/
    png_url = "http://research.microsoft.com/en-us/um/people/cmbishop/PRML/#{$1}"
    begin
      png_file = agent.get(png_url)
      png_file.save
      puts "saved #{png_url}"
    rescue => ex
      puts "caught exception!"
      retry
    end
  end
  sleep 10
}