本日のRuby的お勉強。
Webからたくさんデータをひろって処理したかったので、Rubyでurlを直接開く方法を勉強しました。
require 'open-uri' open('http://d.hatena.ne.jp/hakobe932/') do |f| f.each_line {|line| print line} end
open-uriライブラリをロードするだけで、openメソッドがuriを開けるように拡張されるらしい。正確にはKernelクラスのopenメソッドがオーバーライド再定義されてるってことでいいんかな。openメソッド自体が変わってしまうというのがおもしろいね。
ちなみにPythonだと、
import urllib f = urllib.urlopen('http://d.hatena.ne.jp/hakobe932/') for line in f: print line,
urllibモジュールに依存します。なんでもモジュール依存なところがPythonっぽい?
Rubyのopen-uriライブラリについては、Rubyリファレンスマニュアル - open-uriが本家。あ、再定義なのね。Rubyっぽい。Pythonのurllibの解説は、11.4 urllib -- URL による任意のリソースへのアクセス。