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件などと制限をかけてはいないはずだが。困ったな、これは。