Realizar una búsqueda en Google

Hola, este es mi primer post y es para hacer una consulta sobre las búsquedas en Google desde un programa en Java. Lo que quiero es poder descargar el código fuente de una página de resultados de Google pero al intentarlo me manda un script. Investigando vi que la única forma de hacer esto es mediante la API de Google (googleapi.jar) pero creo que ya no la publican. Alguien sabe algo sobre esa API? O si no, alguna forma de realizar búsquedas en Google desde un programa en Java? Saludos.

Nota: lo único que quiero es obtener los resultados de una cierta búsqueda (las urls)

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Había un API de SOAP search

Había un API de SOAP search que está descontinuado. No sé si en ese se basaba el googleapi.jar pero lo que se puede hacer ahora es usar el AJAX API Search.

Entra a: http://code.google.com/

Está como producto destacado.


Ahí viene este ejemplo:

String baseUrl       = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String query         = "Paris%20Hilton";
String securityStuff = "&key=INSERT-YOUR-KEY&userip=USERS-IP-ADDRESS";

URLConnection connection = new URL( baseUrl + query + securityStuff ).openConnection();

connection.addRequestProperty("Referer", /* Enter the URL of your site here */);

String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null) {
    builder.append(line);
}

JSONObject json = new JSONObject(builder.toString());

// Los resultados están en ese objeto

La documentación de como obtener la llave y todo lo demás está en el sitio. Lee la licencia, hay entre algunos de los acuerdos que no puedes lanzar consultas indiscriminadas y otras cosas.

La razón por la cual AJAX API el el preferido para hacer busquedas desde fuera de google es simple. Una parte del procesamiento la hace el cliente y el formato es un JSON que es mucho más ligero que el XML devuelto por una invocación SOAP.

Espero que te sirva.

Gracias

Gracias por tu ayuda pero tengo un par de dudas. Puedo usar ese API en un programa en Java o es solo para sitios web porque eso es lo que veo en Google Code, ademśa me pide mi sitio web para generar mi llave y yo lo necesito usar en un programa de escritorio.

1. Lee la liga que te dí :

Parece que sí mira.

1. En la liga que te dí : http://code.google.com/apis/ajaxsearch/documentation/#fonje_snippets ( que es de donde salio el ejemplo, dicen como usarlo para java )

2. En la documentación ( O al menos en las ( o los ) FAQ's ) Can I use the AJAX Search API in my non-Web application? dice que si puedes usarlo en el una aplicación de escritorio.

Hay mucha más información en el sitio, dale una revisada y ve si te funciona. Al menos eso fue lo que yo hice para responderte :)

Me parece que también esta disponible en español ( por si acaso te hiciera falta )