Ejemplo01.pl

Este es un ejemplo de utilización de las APIs de Google en entorno web. En este caso en concreto, trabajamos con Perl. Por ello, necesitamos un módulo que nos permita usar Servicios Web (Web Services, SOAP).

Así, nos hemos instado en nuestro servidor el módulo SOAP::Lite, que nos lo hemos descargado gratis desde http://www.soaplite.com.

El código de este ejemplo lo tenéis disponible en 'ejemplo01-pl.txt' y para ver cómo funciona, podéis acceder a 'ejemplo01.pl'.

Este ejemplo llama a los Servicios Web de Google para hacer una petición de los 10 primeros resultados de la búsqueda del término "matrix reloaded".

Analizamos el código:

use SOAP::Lite;
Llamamos al módulo necesario para llamar a los Servicios Web.

$peticion = "matrix reloaded";
En este caso, el término a buscar es "matrix reloaded", pero puede ser cualquier otro que queramos o, incluso uno que nos indique el usuario.

$clave = "XXXXXXXXXXXX";
Aquí deberemos indicar nuestra clave. Puedes conseguir una gratis en http://api.google.com/createkey. Recuerda que solamente puedes hacer 1000 peticiones por día con la misma clave.

$resultados_inicio = 0;
$numero_resultados = 10;
Le indicamos que empiece por el primer resultado (índice 0) y que nos muestre diez resultados. Como veremos ahora, trabajamos con un array, y éstos suelen tener el primer valor con índice 0.

$servicio = SOAP::Lite -> service('file:./GoogleSearch.wsdl');
Nomenclatura que usa SOAP::Lite para acceder a Servicios Web mediante el uso de descripciones WSDL. El fichero WSDL en cuestión es 'GoogleSearch.wsdl', se encuentra en el mismo directorio que 'ejemplo01.pl', y lo hemos descargado completamente gratis desde http://www.google.com/apis/download.html.

Si quieres más información sobre el uso de SOAP::Lite, puedes dirigirte a: http://guide.soaplite.com

$resultado = $servicio -> doGoogleSearch($clave, $peticion, $resultados_inicio, $numero_resultados, "false", "", "false", "", "", "" );
En este punto es donde llamamos al método principal del servicio: doGoogleSearch. A este método se le deben pasar 10 parámetros, en este orden:
          :: Clave: Nos la proporciona Google y se puede conseguir gratis en http://api.google.com/createkey.
          :: Petición: Dentro de esta cadena, se cumplen las mismas normas que las búsquedas clásicas en Google. Es decir: 10 palabras como máximo; hay palabras que no son consideradas ("de", "of", "la", "the", ...); si la petición es "deportes -basket" nos buscará páginas que contegan la palabra "deportes" pero no la palabra "basket"; si la petición es "palabra site:midominio.com" solo buscará dentro de las páginas de "midominio.com", etc.
          :: Inicio: Valor del primer resultado que queremos que nos muestre. Tener en cuenta que el primer resultado tiene índice cero.
          :: Número de resultados: Este valor puede ser 10 como máximo.
          :: Filtro: Se trata de un boleano (verdadero o falso). Si está activado, se muestran páginas filtradas en función de la experiencia de los usuarios de Google (no se muestran páginas con 'snippets' repetidos, o páginas de dentro del mismo host). Se recomienda ponerlo a "false".
          :: Restricción: Puede tomar valores para restringir los resultados a un solo idioma ('lang_es' sería para solamente páginas en español, o 'lang_fr' solo en francés), a páginas web de un solo país ('countryAR' para Argentina o 'countryCL' para Chile), o páginas web de un solo tema ('linux' para temas de Linux, o 'unclesam' para temas relacionados con USA). Sería conveniente, para este parámetro, y para otras muchas cosas, echar un vistazo al fichero 'APIs_Reference.html' que se incluye dentro del 'kit' que os habéis descargado.
          :: SafeSearch: Se trata de un boleano (verdadero o falso). Si está activado, muestra menos resultados que si estuviera desactivado ("false"), ya que no se muestran ciertas páginas que Google considera que son de adultos. Actúa de la misma manera que el SafeSearch de las búsquedas clásicas.
          :: Restricción de idioma: Restringe la búsqueda de documentos para uno o varios idiomas.
          :: ie: En principio, servía para indicar el juego de caracteres en el que se introducen los datos de entrada. Pero ahora este valor es ignorado, y siempre se usa el juego de caracteres UTF-8.
          :: oe: En principio, servía para indicar el juego de caracteres en el que se muestran los datos de salida. Pero ahora este valor es ignorado, y siempre se usa el juego de caracteres UTF-8.

$total = $resultado->{'estimatedTotalResultsCount'};
El objeto 'resultado' tiene la propiedad 'estimatedTotalResultsCount', que devuelve el número de resultados totales de la búsqueda. Este valor puede ser menor, igual o mayor que el valor de la variable 'numero_resultados'.

$url = $resultado->{resultElements}->[$i]->{URL};
$titulo = $resultado->{resultElements}->[$i]->{title};
$snippet = $resultado->{resultElements}->[$i]->{snippet};
En este caso trabajamos con el array $resultado->{resultElements}. Dentro de las propiedades que tienen cada uno de los elementos de este array, en este ejemplo utilizamos 'URL' (la dirección con el enlace a la página web del resultado), 'title' (el título de esta página web), y 'snippet' (una pequeña muestra del texto de la página web donde, generalmente, se incluyen las palabras de búsqueda.


Volver a Google API (página principal)

Puedes copiar esta información (estamos por la divulgación del conocimiento), pero cita las fuentes (google.dirson.com).