jueves, 20 de agosto de 2009

Buscando con Google desde Python (2.6) Parte 1

Empezé a investigar, para un nuevo proyecto, como utilizar la API AJAX de Google para Busquedas en conjunto con Python, lenguaje que se encargara del procesamiento en el lado del servidor y generara la pagina con los resultados.

Me encontré con el blog de Damon Cortesi que contiene un ejemplo de uso, que utiliza simplejson, incorporado en la biblioteca estandar a partir de Python 2.6.

Nuestro uso del api se limita a construir un URL que incluya los terminos a buscar y las restricciones de la misma.
La URL base es http://ajax.googleapis.com/ajax/services/search/images , a la que tendremos que agregar el termino a buscar, la version del protocolo, la cantidad de resultados devueltos

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

import urllib
import json
# vamos a crear la consulta
query = urllib.urlencode({'q' : 'flores', #cadena a buscar
'v' : '1.0', #version del protocolo
'rsz' : 'large'}) # estableces que se devuelvan 8 resultados por consulta
#completamos el url
url = 'http://ajax.googleapis.com/ajax/services/search/images?%s' \
% (query)
#solicitamos el url
resultados = urllib.urlopen(url).read()
#interpretamos el objeto json. json.loads() nos devuelve un diccionario
json = json.loads(resultados)
#creamos un diccionario con los datos que nos interesan
resultados = json['responseData']['results']
#los imprimimos!
for i in resultados:
print i['title'] + ": " + i['url']

"""Salida:
flores089.gif: http://i121.photobucket.com/albums/o207/bicfomh/rec/flores/flores089.gif
ashley-flores.jpg: http://www.hoax-slayer.com/images/ashley-flores.jpg
z-flores.gif: http://www.zwani.com/graphics/portuguese/flores/images/z-flores.gif
Flor_289035504_017_flores.jpg: http://images.recados.net/img/recados/Flor_289035504_017_flores.jpg
z-flores1.gif: http://images.zwani.com/graphics/portuguese/flores/images/z-flores1.gif
z-flores3.gif: http://www.zwani.com/graphics/portuguese/flores/images/z-flores3.gif
z-flores10.gif: http://www.recados.com/graficos/flores/images/z-flores10.gif
RanchodeLasFlores3.jpg: http://www.herecomestheguide.com/images/location/RanchodeLasFlores/RanchodeLasFlores3.jpg
"""



Durante esta semana voy a seguir investigando, y voy a pasar de urllib a urllib2, que es mas eficiente(segun lo que lei)

Si quieren saber mas sobre la api AJAX lo pueden encontrar en:
http://code.google.com/intl/es/apis/ajaxsearch/documentation/reference.html#_intro_fonje
Hasta la proxima!

1 comentario:

shakaran dijo...

Muchas pruebas y muy buen post!