Google Web API
GoogleWeb APIが新規にキーを発行してくれない*1。以前発行してたので助かった。
GoogleSearch.wsdlもなくなっている。以前なら
http://api.google.com/GoogleSearch.wsdl
でアクセスできるのに、今はnot found。これも前持ってたやつがあったので助かった。
まずruby-googleと依存ライブラリであるsoap4rをインスコ。
http://raa.ruby-lang.org/project/ruby-google
http://raa.ruby-lang.org/list.rhtml?name=SOAP4R
と、そのまえに、ruby-googleがこのままじゃ使えないのでインストールする前にちょっと書き換えないといけない。
ruby-google-0.6.0/lib/google.rb:158 に
WSDL = 'http://api.google.com/GoogleSearch.wsdl'
とあるが、ここにはファイルがないので、適当な場所に指定しておく。ローカルに置けるが、ファイル読み込み作るのが面倒だったので、#{RAILS_APP}/public/ にほりこんどいて、urlで指定しといた。
次、通信部分を作る。
今回は、ある url のバックリンクの数が欲しかっただけなので、すごい簡単。KEY はアプリケーションキー。
def get_back_link(url) google = Google::Search.new(KEY) q = google.search("link:#{url}", 0, 1) return q.estimatedTotalResultsCount end
できた。
問題点としては、レスポンスがくそ遅く、たまに502エラーが出ること。うーむ。