はてなキーワード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の勉強も楽しくなってくるなぁ。