babie steps

作業療法記録

それ Rails Ruby でもできるよ

まだ買ってない/読んでないんだけど、目的が Yahoo! Web API の解説なら CGI にする必要なくね? ウェブアプリ周りは群雄割拠だしさぁ、好きなの使わせてさぁ。

#!/usr/bin/ruby
require 'open-uri'
require 'rexml/document'
require 'nkf'

Y_URL = 'http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch'
Y_ID = 'YahooDemo' # use your own id

if __FILE__ == $0
   word = ARGV.shift
   max = ARGV.shift || 5
   url = "#{Y_URL}?appid=#{Y_ID}&query=#{word}&results=#{max}"

   doc = REXML::Document.new(open(url){|u| u.read})
   puts "total: " + doc.root.attributes['totalResultsAvailable']
   doc.elements.each("ResultSet/Result") do |e|
      puts NKF.nkf("-We -m0", e.elements["Title"].text) + ": " + e.elements["Url"].text
   end
end

URL の組み立ては URI ライブラリを使うのがフォーマルなのかな?と思ったが、余計なことに気を取られる感じがしたので止めた。

$ ./yapi.rb ruby
total: 38300000
オブジェクト指向言語Ruby: http://www.ruby-lang.org/ja/
Ruby Home Page: http://www.ruby-lang.org/
Ruby Voiller TOP: http://ruby.aqa.co.jp/
Ruby Ruby Ruby: http://www-ps.kek.jp/thitoshi/ruby
Ruby: http://www.goto.info.waseda.ac.jp/~fukusima/ruby/python-j.html


追記: