On the webservices road

diciembre 11th, 2005 § 0 comments

Siguiendo con la ruta de los servicios web y enlazando con mi interés por aprender de una vez por todas Python voy a poner un pequeño ejemplo de como utilizar SOAP con el susodicho lenguaje.

El hecho de usar Python es debido a mi nuevo interés por crear un pequeño applet para gnome (en Python como no! emoticon) al estilo barra de búsqueda rápida. Inmediatamente cuando te planteas el realizarlo lo primero que salta a tu cabeza es el tema de los servicios web, podríamos usar Google, Yahoo, algún diccionario inglés-español .... el abaníco es muy amplio. Así que manos a la obra (coño, parezco el de Bricomanía, dónde está la trocoladora??)

Lo primero de todo es dedicir que implementación de SOAP vamos a utilizar ya que por suerte tenemos unas pocas para elegir. En esta url podemos encontrar distintos links todos referentes al uso de SOAP con Python. Yo me he quedado con la librería SOAPpy, tras leer un poco he visto que es la más utilizada, además viene perfectamentve instaladita en mi Ubuntu emoticon.

Ahora vamos a hacer el Hello World de los servicios web con Google, para comenzar debemos visitar la web en la que Google nos ofrece acceso a sus servicios, Google Web Apis. Ahí obtendremos kit de desarrollo y un identificador (Google Key) para poder utilizar sus servicios. En el kit de desarrollo vienen varios ejemplos de uso en distintos lenguajes de programación (java,perl,visual studio .net), pero no en Python (que suerte canijo!!).

Nos da igual, lo que verdaderamente nos interesa de ese kit es el archivo WSDL (GoogleSearch.wsdl) en el que se especifican las cualidades del servicio (funciones que tenemos, sus parámetros, los resultados que devuelven, los tipos de estos resultados ...). Una vez que tengamos ya todos los ingredientes (donde está la trocoladora???) ya podemos ponernos manos a la obra.

Como os he comentado al principio todo este lio es para aprender un poquito de Python así que en esta dirección podreis encontrar el manual que he seguido para hacer este ejemplito. Es un libro (gratuito por supesto!) fantástico, lectura obligatoria si quieres aprender un poquito de Python.

 

Bueno, lo dicho, aquí os presento el código tan petardo que hace rular el temita emoticon

PYTHON:
  1. from SOAPpy import WSDL
  2.  
  3. WSDLLOCATION="./GoogleSearch.wsdl"
  4. GOOGLEKEY="TU_GOOGLE_KEY_API_AQUI"
  5.  
  6. google=WSDL.Proxy(WSDLLOCATION)
  7. results=google.doGoogleSearch(GOOGLEKEY,"gnome python applets",0,10,True,"",False,"","utf-8","utf-8")
  8. print "Encontrados %d resultados en %f segundos" %(results.estimatedTotalResultsCount,results.searchTime)
  9. print "Mostrando los 10 primeros : "
  10. print "======================================================================"
  11.  
  12. for r in results.resultElements:
  13.     print "Titulo : %s" % r.title.encode("utf-8")
  14.     print "Link : %s" % r.URL.encode("utf-8")
  15.     print "Descripcion : %s" % r.snippet.encode("utf-8")
  16.     print "======================================================================"

 

Muy simple no? Importo la librería, establezco ciertos parametrillos, creo un objeto para trabajar con el servicio web de Google, consumo el servicio doGoogleSearch y vuelco los resultados.

La salida que obtenemos es algo parecido a esto :

CODE:
  1. Encontrados 33500 resultados en 0.152441 segundos
  2. Mostrando los 10 primeros :
  3. ======================================================================
  4. Titulo : <b>Gnome applets</b> with <b>Python</b>
  5. Link : http://www.pygtk.org/articles/applets_arturogf/
  6. Descripcion : The simplest <b>applet</b> we can write can be found in the <b>gnome</b>-<b>python</b> package<br> documentation (/usr/share/doc/python2.x-gnome2/examples/<b>applet</b>/<b>applet</b>.py in <b>...</b>
  7. ======================================================================
  8. Titulo : [Deskbar] Re: <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal <b>...</b>
  9. Link : http://mail.gnome.org/archives/deskbar-applet-list/2005-October/msg00127.html
  10. Descripcion : [Deskbar] <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: Deskbar <b>Applet</b>].<br>  From: Jeff Waugh. [Deskbar] Re: <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: <b>...</b>
  11. ======================================================================
  12. Titulo : [Deskbar] <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: Deskbar <b>...</b>
  13. Link : http://mail.gnome.org/archives/deskbar-applet-list/2005-October/msg00118.html
  14. Descripcion : [Deskbar] Re: <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: Deskbar <b>Applet</b>].<br>  From: Davyd Madeley. References:. [Deskbar] <b>Gnome</b> 2.14 Module Proposal: <b>...</b>
  15. ======================================================================
  16. Titulo : RPM Search Götz Waschk &lt;waschk_linux-mandrake_com&gt;
  17. Link : http://rpm.pbone.net/index.php3/stat/15/limit/14/dl/40/pakman/1564/com/G%C3%83%C6%92%C3%82%C2%B6tz%20Waschk%20%3Cwaschk_linux-mandrake_com%3E.html
  18. Descripcion : <b>gnome</b>-<b>python</b>-<b>applet</b>, 2.0.0-3mdk, i586, <b>Python</b> bindings for <b>GNOME</b> Panel <b>applets</b>.<br>  Mandrake 10.X. <b>gnome</b>-<b>python</b>-<b>applet</b>, 2.0.0-3mdk, i586, <b>Python</b> bindings for <b>...</b>
  19. ======================================================================
  20.  

Ea! Ahí está el tio. El primer link que nos ha devuelto es el que estoy usando como tutorial para poder hacer el applet. Ya os contaré como va el tema.

Saludos y adioses!

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the answer to the math equation shown in the picture. Click on the picture to hear an audio file of the equation.
Click to hear an audio file of the anti-spam equation

What's this?

You are currently reading On the webservices road at arde en el infierno.

meta