| You are here: Inicio > Inmersión en Python > Servicios web SOAP > Búsqueda en Google | << >> | ||||
Inmersión en PythonPython de novato a experto |
|||||
Volvamos finalmente al ejemplo de código que vio al comienzo de este capítulo, que hace algo más útil y excitante que obtener la temperatura.
Google proporciona un API de SOAP para acceder de forma programática a buscar resultados. Para usarla deberá suscribirse a los Google Web Services.
Vaya a http://www.google.com/apis/ y cree una cuenta en Google. Esto sólo precisa de una dirección de correo electrónico. Tras registrarse recibirá por correo la clave de licencia de la Google API. Necesitará esta clave para pasarla como parámetro cada vez que invoque las funciones de búsqueda de Google.
Descargue también desde http://www.google.com/apis/ el kit de desarrollo de Google Web API. Incluye algo de código de ejemplo en varios lenguajes de programación (pero no Python), y lo más importante, incluye el fichero WSDL.
Descomprima el fichero del kit de desarrolo y busque GoogleSearch.wsdl. Copie este fichero a algún sitio permanente en su disco duro. Lo necesitará más adelante en este capítulo.
Una vez tenga la clave de desarrollador y el fichero WSDL de Google en un sitio conocido, puede empezar a jugar con los Google Web Services.
>>> from SOAPpy import WSDL >>> server = WSDL.Proxy('/path/to/your/GoogleSearch.wsdl')>>> server.methods.keys()
[u'doGoogleSearch', u'doGetCachedPage', u'doSpellingSuggestion'] >>> callInfo = server.methods['doGoogleSearch'] >>> for arg in callInfo.inparams:
... print arg.name.ljust(15), arg.type key (u'http://www.w3.org/2001/XMLSchema', u'string') q (u'http://www.w3.org/2001/XMLSchema', u'string') start (u'http://www.w3.org/2001/XMLSchema', u'int') maxResults (u'http://www.w3.org/2001/XMLSchema', u'int') filter (u'http://www.w3.org/2001/XMLSchema', u'boolean') restrict (u'http://www.w3.org/2001/XMLSchema', u'string') safeSearch (u'http://www.w3.org/2001/XMLSchema', u'boolean') lr (u'http://www.w3.org/2001/XMLSchema', u'string') ie (u'http://www.w3.org/2001/XMLSchema', u'string') oe (u'http://www.w3.org/2001/XMLSchema', u'string')
Aquí tiene una breve sinopsis de todos los parámetros de la función doGoogleSearch:
>>> from SOAPpy import WSDL >>> server = WSDL.Proxy('/path/to/your/GoogleSearch.wsdl') >>> key = 'YOUR_GOOGLE_API_KEY' >>> results = server.doGoogleSearch(key, 'mark', 0, 10, False, "", ... False, "", "utf-8", "utf-8")>>> len(results.resultElements)
10 >>> results.resultElements[0].URL
'http://diveintomark.org/' >>> results.resultElements[0].title 'dive into <b>mark</b>'
El objeto results contiene más que los resultados de la búsqueda. También incluye información sobre la búsqueda en sí, como el tiempo que llevó y cuántos resultados se encontraron (aunque sólo se devolvieran 10). La interfaz web de Google muestra esta información, y también puede acceder a ella programáticamente.
>>> results.searchTime0.224919 >>> results.estimatedTotalResultsCount
29800000 >>> results.directoryCategories
[<SOAPpy.Types.structType item at 14367400>: {'fullViewableName': 'Top/Arts/Literature/World_Literature/American/19th_Century/Twain,_Mark', 'specialEncoding': ''}] >>> results.directoryCategories[0].fullViewableName 'Top/Arts/Literature/World_Literature/American/19th_Century/Twain,_Mark'
| Esta búsqueda llevó 0.224919 segundos. Eso no incluye el tiempo que tardó el envío y recepción de documentos XML de SOAP. Sólo el tiempo que empleó Google procesando la consulta una vez que la recibió. | |
| En total hubieron aproximadamente unos 30 millones de resultados. Puede acceder a ellos a 10 por vez cambiando el parámetro start e invocando server.doGoogleSearch de nuevo. | |
| En algunas consultas Google también devuelve una lista de categorías del Google Directory relacionadas. Puede añadir estas URL a http://directory.google.com/ para construir el enlace a la página de categoría del directorio. |
<< Introspección de servicios web SOAP con WSDL |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
Solución de problemas en servicios web SOAP >> |