2008-08-29 21:52:57
Yahoo!検索APIで作ったKWICサイトに不満があるので、Google Search APIを使ってみようと考えた。前にIDを取得したことがあるのだが、長らく使っていなかったのだ。何だか、新規申し込みが停止されたとか云うニュースを読んだ記憶がある。この頃はどうなっているんだろうと思ったら、Não Aqui! » Google Search REST API を Python から使うという記事を見つけた。へえ、そうだったのか。Google AJAX Search APIを使えばよかったのか。全然知らなかった! ajaxという言葉に恐怖を感じる私はこの存在を知っていたけれども、近寄らなかったのだ。このサイトのおかげで何となくpythonで情報を受けとる方法や解ったのだが、私は自分の計算機ではなくGoogle App Engineで使いたい。どうしたらいいのだろう。
と思っていたら、Google App Engineで、外部にあるJSON形式のファイルを読み込むという記事を見つけた。へえ、Djangoユーティリティからsimplejsonをインポートするといいのか。Django なんて私は知らないから、そんなこと思いつくはずもない。この二つのサイトを参考に、見よう見真似で何とか動作確認までやってみた。「London」という単語を検索してみよう。別にロンドンに拘る意味はない。
#!/usr/bin/env python # -*- coding: utf-8 -*- import wsgiref.handlers from google.appengine.ext import webapp from google.appengine.api import urlfetch from django.utils import simplejson class MainPage(webapp.RequestHandler): def get(self): query = 'London' url = 'http://ajax.googleapis.com/ajax/services/search/web?\\ key=xxxxxxxxxx&v=1.0&q='+query result = urlfetch.fetch(url) if result.status_code == 200: a = simplejson.loads(result.content) results = a['responseData']['results'] self.response.out.write("<html><body><h1>Test</h1>") self.response.out.write("<table border='1'><tr><th>title</th><th>content</th></tr>") for r in results: self.response.out.write("<tr><td>%s</td>" % r['title'].encode('utf-8')) self.response.out.write("<td>%s</td>" % r['content'].encode('utf-8')) self.response.out.write("</table></body></html>") def main(): application = webapp.WSGIApplication( [('/', MainPage)], debug=True) wsgiref.handlers.CGIHandler().run(application) if __name__ == "__main__": main()
API Keyはなくてもいいらしいのだが、できればとってくれみたいに書いてあったので、取得してみた。結果は、こんな感じ。
一見、ちゃんと情報を取ってきたように見えるのだが、たった4件? ロンドンに関する情報が4件? そんなわけがないだろう。一体どういうことなんだ。最大4件などと制限をかけてはいないはずだが。困ったな、これは。