はてなキーワードAPIを呼ぶRubyスクリプト

ただいまRubyの勉強中です。
RubyはWeb関連のライブラリも充実している。というわけで、はてなキーワードAPIを呼ぶスクリプトを作ってみた。単に、検索語にヒットしたキーワードを一覧表示するだけ、という単純なものだけど。

require 'net/http'
require 'uri'
require 'rss'
require 'kconv'

def build_query(query_hash)
  query_hash.map do |key,value|
    "#{URI.encode(key)}=#{URI.encode(value)}"
  end.join("&")
end

keyword = ARGV.pop
result = nil

Net::HTTP.version_1_2
Net::HTTP.start('search.hatena.ne.jp', 80) do |http|
  response = http.get('/keyword?' + 
                     build_query("word" => keyword,
                                 "mode" => "rss",
                                 "ie" => "shiftjis",
                                 "page" => "1"))
#  puts response.body
  result = RSS::Parser.parse(response.body, false)
end

result.items.each do |item|
  puts item.title.tosjis
end

イテレータやブロックを多用すると、いかにもRubyを使いこなしてます、って感じがするのは初心者のたわごとだろうか(笑)

ちなみに私の環境は Windows + ActiveScriptRuby なので、他の環境の場合、kconvライブラリのtojisメソッドを削除するとか、文字コード関連のコードを修正しないといけないかもしれない。

使用例は以下の通り。

C:\home\ruby>ruby hatena_keyword.rb "はてなダイアリー"
はてなダイアリー
はてなダイアリーのヘルプ
はてなダイアリー市民
はてなダイアリー日記
はてなダイアリークラブ
はてなダイアリーブック
はてなダイアリーキーワード
はてなダイアリーキーワードの技術的制限
教えてはてなダイアリー
はてなダイアリー利用者に100の質問(2006)

出来る事が増えてくると、Rubyの勉強も楽しくなってくるなぁ。