Categorías destacadas
programacion php    
Artículo
7
¡votar!

 Web Services: XML-RPC, SOAP, sobre PHP, Perl, y otros conceptos


SOAP desde Python

SOAP al igual que XML-RPC puede ser implementado en la mayoría de los lenguajes de programación actuales dentro del entorno Linux. Entre ellos, está Python, lenguaje de script similar a Perl, muy querido entre los Debianitas.

Utilizando un módulo Python, podemos utilizar toda la potencia de los Servicios Web basados en SOAP. Veamos como:

wget http://switch.dl.sourceforge.net/sourceforge/pywebsvcs/SOAPpy097.tgz 
tar -zxvf SOAPpy097.tgz 
cp -Rdf SOAPpy097 /usr/lib/python2.2/site-packages 

Es recomendable utilizar Python 2.1, o 2.2, para evitar un problema de memoria que se da con el parser XML de la versión 2.0

Referencia: http://www.fettig.net/googleRank.txt

Un script en Python que utilice este módulo para efectuar una consulta sobre Google sería así:

#!/usr/bin/python 
import SOAP 
import string 

key = 'iwnUXUtHj3bteg5FWfBJDwui3SPeB+iy' 
soapfalse = SOAP.booleanType(0) 
emptyStr = SOAP.stringType('') 

def rank(site, query): 
    x=1 
    server = SOAP.SOAPProxy('http://api.google.com/search/beta2', namespace=
'urn:GoogleSearch') 
    start = 0 
    while start < 10: 
        data = server.doGoogleSearch( SOAP.stringType(key), 
SOAP.stringType(query), start*10, 10, soapfalse, emptyStr, soapfalse, emptyStr, 
emptyStr, emptyStr) 
        results = data.resultElements 
        for result in results: 
            try: 
                result.URL.index(site) 
                return (result.URL, start*10 + results.index(result) + 1) 
            except: 
                pass 
            x = x+1 
                 
        start = start + 1 

if __name__ == '__main__': 
    import sys 
    searchPhrase = string.join(sys.argv[2:]," ") 
    result = rank(sys.argv[1], searchPhrase) 
    if result: 
        print "'" + result[0] + "'" + " is currently ranked #" + str(result[1]) 
+ " on Google for the search phrase '" + searchPhrase + "'." 
    else: 
        print "'" + sys.argv[1] + "'" + " is not currently in the top 100 
results for the search phrase '" + searchPhrase +  "' on Google." 

Una versión más simplificada y más clara de este código es la siguiente:

#!/usr/bin/python 
import SOAP 
key = 'iwnUXUtHj3bteg5FWfBJDwui3SPeB+iy' 
query = 'python' 
s = SOAP.SOAPProxy("http://api.google.com/search/beta2") 
r = s.doGoogleSearch(key, query, 0, 10, "false", "", "false", "", "latin1", 
"latin1") 

Existe un proyecto llamado PyGoogle que puede ayudarnos a la hora de extraer información adicional de Google, como por ejemplo páginas cacheadas o sugerencias de corrección ortográfica. PyGoogle es una aplicación basada en SOAP y el Servicio Web de Google.

Publicado por:
Martin Valdivia
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon