uriでweb上のドキュメントを開くスクリプト

本日の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 による任意のリソースへのアクセス