Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Internet > XML > Web Services: XML-RPC, SOAP, sobre PHP, Perl, y otros conceptos
-Tutoriales

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.

 
Patrocinados
 

Copyright © 1999-2010 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

diseño y desarrollo web por Color Vivo Internet. Un proyecto de los Hermanos Carrero