Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

GoogleとSOAP4Rで遊ぼう

NaHiがtutorialを書くはずがない。

RAA:soap4r/1.4.8が必要です。

Googleしてみる。

  $ cat google.rb
  require 'uconv'  # Ruby/1.8ではiconvを使うので、uconvは要りません。
  require 'soap/wsdlDriver'
  
  searchWord = ARGV.shift
  # You must get key from http://www.google.com/apis/ to use Google Web APIs.
  # Google Web APIsを使うためには、http://www.google.com/apis/へ行ってユーザ登録し、
  # キーを入手する必要があります。入手したキーを~/.google_keyに保存してください。
  key = File.open(File.expand_path("~/.google_key")).read.chomp
  
  GOOGLE_WSDL = 'http://api.google.com/GoogleSearch.wsdl'
  
  def html2rd(str)
    str.gsub(%r(<b>(.*?)</b>), '((*\\1*))').strip
  end
  
  google = SOAP::WSDLDriverFactory.new(GOOGLE_WSDL).createDriver
  result = google.doGoogleSearch( key, searchWord, 0, 10, false, "", false, "", 'utf-8', 'utf-8' )
  result.resultElements.each do |ele|
    puts "== #{html2rd(ele.title)}: #{ele.URL}"
    puts html2rd(ele.snippet)
    puts
  end
  $ ruby -Ke google.rb 'なひ Ruby'

すると、以下のように。html2rdが手抜き過ぎるな。GoogleがRDで返してくれないかな(無理です

== NaHi's node: http://www.jin.gr.jp/~nahi/
NaHi's node. Programs/プログラム. ▼るびゐ,あり□: →新着,るびゐ ((*Ruby*))で書か<br> れたスクリプト.あなたも ((*...*)) Links/リンク. ▼リンクもあり□: →技術,こんぴ<br> た,((*Ruby*)),Perl,読み物 更新時間ついてます. Copyright 召1995-2000 NAKAMURA, Hiroshi. ((*...*))
== Linkavailable: ((*Ruby*)): http://www.jin.gr.jp/~nahi/link-ruby-temp.html
((*...*)) 10/03 23:02, ((*Ruby*)), Yoshidamさん. 09/25 16:28, ((*Ruby*)) anywhere, ((*な*))((*ひ*)). 09/21 03:52, PalmSyncのホ<br> ーム, nyasuさん. ((*...*)) 2002/04/24, いがらしの日記, 五十嵐 宏さん. 2002/04/09, Rubyavailable,<br> ((*な*))((*ひ*)). 2002/03/31, ((*ruby*))拡張モジュール, Takaaki Tateishiさん. 2002/03/11, s_nojo's page, s_nojo<br> さん. ((*...*))
== ((*Ruby*)) anywhere: http://www.jin.gr.jp/~nahi/Ruby/anywhere.html
((*...*)) また,以下のリストに掲載されているプロバイダさん・レンタルサー<br> バさんの最新情報もお待ちしています. ((*Ruby*))のバージョンが上がってい<br> るのに気付いたら,やっぱり((*な*))((*ひ*)) に連絡してもらえると嬉しいです.. ((*...*))
== きのぼず - きのひんが - Thread view: http://www.jin.gr.jp/~nahi/kb.cgi?b=kf&c=v
((*...*)) ((*ruby*)) ▼ [さとう] 1999/6/22(15:22): 86. Re: ((*ruby*)) ▼ [((*な*))((*ひ*))] 1999/6/25(21:42): 88. Re:<br> ((*ruby*)) [さとう] 1999/6/29(14:51). 81. リンク先変更のお願いです. ((*...*)) Re: ((*ruby*))の<br> リンクに追加していただきたいのですが ▼ [((*な*))((*ひ*))] 1999/4/2(11:19): 78. ((*...*))
== Rubyavailable - index: http://www.jin.gr.jp/~nahi/Ruby/
((*...*)) Perlで苦労する あなたも, ((*Ruby*)) なら幸せになれ□(文責((*な*))((*ひ*)): Perl歴9年,((*Ruby*))<br> 歴は1999年3月から). ((*Ruby*))が使えるプロバイダ も増えてきました. ((*Ruby*))本,「<br> オブジェクト指向スクリプト言語((*Ruby*))」も出版されました. これからは ((*...*))
== ((*Ruby*))関連ウェブサイト リンク集: http://i.loveruby.net/ja/rhg/links.html
((*...*)) RWikiメインサイト. http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb. 「((*な*))((*ひ*))」さんによる<br> サイト。 ML Topic などをやってる。 RWiki とは ((*Ruby*)) で実装された Wiki のこ<br> とで、 当然このページ自体も RWiki を使って運営されている。. RubyCentral. ((*...*))
== ((*Ruby*)) Hotlinks: http://www.ruby-lang.org/ja/hotlinks.html
((*...*)) 10/03 23:02 JST, 英, ((*Ruby*)), Yoshidam. 09/25 16:28 JST, 日, ((*Ruby*)) anywhere, ((*な*))((*ひ*)). 09/21 03:52<br> JST, 日, PalmSyncのホーム, nyasu. ((*...*)) 2002/05/05 JST, 日, ((*Ruby*)) ((*Ruby*)) ((*Ruby*)), 高橋 仁. 2002/04/09<br> JST, 日, Rubyavailable, ((*な*))((*ひ*)). 2002/03/31 JST, 日, ((*ruby*))拡張モジュール, Takaaki Tateishi. ((*...*))
== ウェブサイトから情報を得る: http://www.loveruby.net/ja/ruby/websites.html
((*...*)) HotLinks 「((*な*))((*ひ*))」さんによる更新時間順のリンク集。 最近、日記系が分離<br> されて見やすくなった。 ((*Ruby*)) Ring ウェブサイトのリンクリストみたいなも<br> ん。みんなあんまり注目してないけど、秘かによさげだったりする。ウェ<br> ブ ((*...*))
== [((*ruby*))-list:18743] Re: header output in eruby: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/18743
((*...*)) になくす必要はないんですけど…。 &gt;&gt; &gt; は任意の((*Ruby*))の文(かならずしも ((*...*)) <br> 良いかなぁと思いました。 で、そう実装してみたのが ERbLight です。 ((*な*))((*ひ*))&gt;<br> 実装の都合を考えずに利用者の立場で言うと,あったほうが嬉しいです ((*...*))
== Asumi日記(2002-07-31): http://sho.tdiary.net/20020731.html
((*...*)) dch (private). 最近のツッコミ: 1.((*な*))((*ひ*))(07-31) 2.ただただし(07-31) 3.なかだ(07-31)<br> 4.きた(07-31) 5.ただただし(07-31). ((*...*)) 2002-10-19(土) 1. tDiary: 本日のハンティング 2.<br> Copen 3. iPod. 2002-10-18(金) 1. ((*Ruby*)): メーリングリスト 2. XOOPS 3. トンネル慕情. ((*...*))