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.