google Image search API
A python client to query image from google. Though the api service has been tagged as (Deprecated), it will work before a new version is released.
'''
Loosely based on Mike Verdone's excellent twitter library:
http://github.com/sixohsix/twitter/
'''
from exceptions import Exception
from urllib import urlencode
import urllib2
try:
import json
except ImportError:
import simplejson as json
class GoogleError(Exception):
"""
Exception thrown by the search object when there is an
error interacting with google.com.
"""
pass
class GoogleImageSearch(object):
def __init__(self, endpoint, user_agent= None, cache=None):
self.endpoint = endpoint
self.cache = cache
self.user_agent = user_agent
def __call__(self, **params):
params['v']='1.0'
kwargs = dict(params)
kwargs = urlencode(kwargs)
# HTTP GET
req = urllib2.Request('%s?%s' % (self.endpoint, kwargs))
print req.get_full_url()
cache_response = True
if self.user_agent:
req.add_header('User-Agent', self.user_agent)
try:
handle = urllib2.urlopen(req)
response = handle.read()
if cache_response and self.cache != None:
self.cache.set('googleimagesearch-' + kwargs, response, time=int(time() + 60))
response = json.loads(response)
return response
except urllib2.HTTPError, e:
raise GoogleError('google imagesearch sent status %i for method: %s\ndetails: %s' % (e.code, e.fp.read()))
class GoogleImage(GoogleImageSearch):
def __init__(self, endpoint='https://ajax.googleapis.com/ajax/services/search/images', user_agent='python-googleimage/0.1', cache=None):
GoogleImageSearch.__init__(self, endpoint=endpoint, user_agent=user_agent, cache=cache)
if __name__ == '__main__':
googleimage = GoogleImage()
query = {'q':'EURECOM'}
print googleimage(**query)
posted on 2012-06-05 17:21 xueliangliu 阅读(578) 评论(0) 编辑 收藏 举报