Webページのタイトルを取得する そのに

id:ha-tan:20060130:1138546013の続きです。
やっぱりかがきたら処理をあきらめるようにしました。あとタイトル文字列の両端の空白を削除するようにしました。

#!/usr/bin/env ruby
# -*- ruby -*-

require 'open-uri'
require 'kconv'

ARGV.each do |uri|
  open(uri, 'r') do |file|
    buf = ''
    while line = file.gets
      buf << line
      if buf =~ /<title[^>]*>([^<]*)<\/title>/im
        puts Kconv.kconv($1.strip, Kconv::EUC)
        break
      end
      break if buf =~ /(?:<\/head>|<body[^>]*>)/i
    end
  end
end

そうそう、上のプログラムではopen-uriを使っています。普段はこんな感じでURLを指定するのですが、

$  ./htmltitle.rb http://d.hatena.ne.jp/ha-tan/

試験用にローカルファイルを指定することもできます。

$  ./htmltitle.rb local_file.html

Webサーバ用意しなくていいので楽です。open-uriらぶ。