GAE で Google Search REST API を つかってみた。

Google App EngineGoogle Search REST API を利用してみた。
コードはこんな感じで、google での検索結果の数がとれた。
 

#!/usr/bin/env python                                                                  
# -*- coding: utf-8 -*-                                                                

from django.utils import simplejson
import urllib, urllib2

class GoogleCount():

  def get_result_count(self, keyword):

    data = {
      "q": keyword,
      "v": "1.0",
      }

    base_url ='http://ajax.googleapis.com/ajax/services/search/web'
    url = '?'.join((base_url, urllib.urlencode(data)))
    req = urllib2.Request(url)

    ret = simplejson.loads(
      urllib2.urlopen(req).read()
      )

    return ret['responseData']['cursor']['estimatedResultCount']

引っかかったところは、url とかの文字コード周りと、あと JSON のモジュールではじめに json-py と言うやつをつかっていたのだけど、unicode に対応していないみたいで同じく文字コードでハマった。
json-py でも一見うまく行きそうだったのだけれど、結果の JSON に日本語が含まれているとエラーが出て駄目だった。

結局 simplejson というのを使えばよさそうだったのだけれど、それをインストールするとしても単純な py ファイルだけじゃなく、c で書かれているモジュールをコンパイルしてインストールするみたいな形だったので、開発環境にインストールしても GAE の実機環境でどうすればいいんだろとおもっていたところ、SDK に入っていたみたいなので事なきを得た。

と言う訳で結局このようなコードに落ち着いた。