Yahoo! WebサービスAPIサンプル(関連検索ワード)
概要
Yahoo!WebサービスAPI 関連検索ワードのサンプルです。
YahooのWebサービスAPIを利用するにはIDが必要です。以下のサイトからIDを取得することができます。
(Yahoo!IDを事前に取得していること。無料)
http://developer.yahoo.co.jp/search/webunit/V1/web...
サンプルページ
指定されたキーワードの関連検索ワードを表示します。さらに表示されたキーワードをクリックすることによりその関連検索ワードを検索します。
http://sakura-computer.co.jp/webservice/yahoo/assi...
参考文献・リンク
CGIライブラリのリファレンスマニュアル
REXMLについて(日本語リファレンスマニュアル)
RubyでCGI
ソースコード
#!/usr/local/bin/ruby require "cgi" require "open-uri" require "rexml/document" require "pp" begin cgi = CGI.new('html4Tr') html = "検索できませんでした。" credit = "<!-- Begin Yahoo! JAPAN Web Services Attribution Snippet --> <a href='http://developer.yahoo.co.jp/about'><img src='http://i.yimg.jp/images/yjdn/yjdn_attbtn1_125_17.gif' title='Webサービス by Yahoo! JAPAN' alt='Web Services by Yahoo! JAPAN' width='125' height='17' border='0' style='margin:15px 15px 15px 15px'></a> <!-- End Yahoo! JAPAN Web Services Attribution Snippet -->" #キーワードが入力されているときのみ処理を行う。 if cgi["query"] != "" then base = "/webservice/yahoo/assistsearch.rb" qstr = "http://api.search.yahoo.co.jp/AssistSearchService/V1/webunitSearch/V1/parse?appid=取得したAPPID" query = qstr + "&query=" + CGI.escape(cgi["query"]) xml = REXML::Document.new(open(query)) #検索結果を確認し、結果HTMLを作成する。 if xml.elements["ResultSet"].attributes["totalResultsReturned"] != 0 then html = "" xml.elements.each("ResultSet/Result") { |result| result.text.split().each { |w| html += "<a href='" + base + "?query=" + CGI.escape(w) + "'>" + w + "</a> " } html += "<br/>" } end end #ページの作成 title = "Yahoo! " + cgi["query"] cgi.out do cgi.html do cgi.head { cgi.title { title } } + cgi.body do cgi.h3 { "Yahoo!検索 関連検索ワード WebサービスAPI サンプル" } + "関連語句を検索したいキーワードを入力してボタンをクリックしてください。" + cgi.form do cgi.text_field("query", cgi["query"]) + cgi.br + cgi.submit end + cgi.h3 { "検索結果" } + html + cgi.br + credit end end end #例外処理 rescue => ex print cgi.header puts '<pre>' + ex + '</pre>' puts '<pre>' pp ex.backtrace puts '</pre>' puts '<pre>' pp query puts '</pre>' end
コメント(0) |
2008年02月21日(木) 22:40:33 Modified by y_tabira