GAE で Google Search REST API を つかってみた。
Google App Engine で Google 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 に入っていたみたいなので事なきを得た。
と言う訳で結局このようなコードに落ち着いた。