Ejemplo03.java

Este es un ejemplo de utilización de las APIs de Google en una aplicación local. En este caso en concreto, trabajamos con Java (http://java.sun.com).

Por ello, es necesario tener instalado el kit Java 2 SDK Standard Edition (http://java.sun.com/j2se/1.3/) y el kit de desarrollo de Servicios Web (http://java.sun.com/webservices/webservicespack.html).

Deberemos haber añadido a la variable de entorno CLASSPATH la ruta del fichero JAR 'googleapi.jar' (este fichero está en el kit de Google que nos hemos descargado desde http://www.google.com/apis/download.html).

Por ejemplo, en Linux o Unix:

setenv $CLASSPATH $CLASSPATH:/usr/librerias-java/googleapi.jar

Por ejemplo, en Microsoft Windows:

set CLASSPATH=%CLASSPATH%;c:\librerias-java\googleapi.jar

El código de este ejemplo número 2 lo tenéis disponible en 'ejemplo03-java.txt', y para probarlo debéis ejecutar desde la consola del Sistema:

javac ejemplo03.java
Compilamos, y se crea la clase 'ejemplo03.class'. Como se puede comprobar dentro del código, esta clase se agrupa dentro del paquete com.google.soap.search. Por lo tanto, para 'correr' la clase 'ejemplo03.class', deberemos tenerlo dentro del directorio com/google/soap/search, o bien utilizar la opción '-d' de 'javac'.

Para hacerlo 'correr' desde la consola:

java com.google.soap.search.ejemplo03

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

package com.google.soap.search;
Como se ha indicado, la clase 'ejemplo03' se empaquetará dentro de com.google.soap.search.

String 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.

String 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.

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

GoogleSearch servicio = new GoogleSearch();
Creamos un nuevo objeto ('servicio') de la clase 'GoogleSearch'.

servicio.setKey(clave);
servicio.setQueryString(peticion);
servicio.setStartResult(resultados_inicio);
servicio.setMaxResults(numero_resultados);
A diferencia de lo que ocurre en otros lenguajes (como Perl o C #, en Java no se pasan parámetros a una función de búsqueda, sino que se establecen mediante métodos del objeto 'servicio':
          :: setKey(clave): Nos la proporciona Google y se puede conseguir gratis en http://api.google.com/createkey.
          :: setQueryString(peticion): 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.
          :: setStartResult(resultados_inicio): Valor del primer resultado que queremos que nos muestre. Tener en cuenta que el primer resultado tiene índice cero.
          :: setMaxResults(numero_resultados): Este valor puede ser 10 como máximo.

Echa un vistazo a todos los métodos de los objetos de tipo 'GoogleSearch' en los JavaDocs de las APIs de Google: http://www.stanford.edu/class/cs276a/projects/docs/googleapi/index.html

GoogleSearchResult resultado = servicio.doSearch();
Creamos el objeto 'resultado', de la clase 'GoogleSearchResult', con el método 'doSearch' del objeto 'servicio'.

total = resultado.getEstimatedTotalResultsCount();
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'.

GoogleSearchResultElement[] re = resultado.getResultElements();
Creamos el objeto-array 're', donde se van a almacenar cada resultado de la petición.

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

Echa un vistazo a todos los métodos de los objetos de tipo 'GoogleSearchResultElement' en los JavaDocs de las APIs de Google: http://www.stanford.edu/class/cs276a/projects/docs/googleapi/index.html


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).