¿Cómo puedo recuperar el HTML de un resultado de consulta del motor de búsqueda?

Estoy tratando de recuperar el html de un resultado de consulta de búsqueda de Google usando Java. Es decir, si busco en Google.com una frase en particular, me gustaría recuperar el html de la página web resultante (la página que contiene los enlaces a posibles coincidencias junto con sus descripciones, URL, etc.).

Intenté hacer esto usando el siguiente código que encontré en una publicación relacionada:

import java.io.*;
import java.net.*;
import java.util.*;

public class Main {

    public static void main (String args[]) {

        URL url;
        InputStream is = null;
        DataInputStream dis;
        String line;

        try {
            url = new URL("https://www.google.com/#hl=en&output=search&sclient=psy-ab&q=UCF&oq=UCF&aq=f&aqi=g4&aql=&gs_l=hp.3..0l4.1066.1471.0.1862.3.3.0.0.0.0.382.1028.2-1j2.3.0...0.0.OxbV2LOXcaY&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=579625c09319dd01&biw=944&bih=951");
            is = url.openStream();  // throws an IOException
            dis = new DataInputStream(new BufferedInputStream(is));

            while ((line = dis.readLine()) != null) {
                System.out.println(line);
            }
        } catch (MalformedURLException mue) {
             mue.printStackTrace();
        } catch (IOException ioe) {
             ioe.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException ioe ) {
                // nothing to see here
            }
        }
    }
} 

De: ¿Cómo se descarga mediante programación una página web en Java?

La URL utilizada en este código se obtuvo mediante una consulta de búsqueda de Google desde la página de inicio de Google. Por alguna razón no entiendo, si escribo la frase que quiero buscar en la barra de URL de mi navegador web y luego uso la URL de la página de resultados de búsqueda resultante en el código, obtengo un error 403.

Sin embargo, este código no devolvió el html de la página de resultados de la consulta de búsqueda. En cambio, devolvió el código fuente de la página de inicio de Google.

Después de investigar más, noté que si ve el código fuente de un resultado de la búsqueda de búsqueda de Google (haciendo clic derecho en el fondo de la página de resultados de búsqueda y seleccionando "Ver fuente de la página") y compárelo con el código fuente de la página de inicio de Google , ambos son idénticos.

Si en lugar de ver el código fuente de la página de resultados de búsqueda guardo el html de la página de resultados de búsqueda (presionando ctrl + s), puedo obtener el html que estoy buscando.

¿Hay alguna manera de recuperar el html de la página de resultados de búsqueda usando Java?

¡Gracias!

Respuesta 1

Te sugiero que pruebes http://seleniumhq.org/

Hay un buen tutorial de búsqueda en google

http://code.google.com/p/selenium/wiki/GettingStarted

Respuesta: 2

Me gustaría usar IllegalArgumentExcpetion en mi script pero no puedo encontrar ninguna información en ningún lado. Muestro lo que ya tengo: public int getId () {return id; } public void setId (int ...

Mi primera aplicación funciona bien solo, pero ahora estoy tratando de agregar pestañas después de un tutorial, pero me atasco. Estuve buscando y muchos usuarios tuvieron el mismo problema, probé esas soluciones pero aún no puedo ...

Tengo una herramienta de cambio de nombre que establece un directorio de carpetas, sin embargo, creé algunos JCheckBox y quiero que puedan cambiar el directorio dependiendo de cuál esté seleccionado. Ella es la oyente de acción de ...

No estoy completamente seguro de cuál es el problema, pero aquí hay un fragmento de mi código. Recibo la advertencia para mi variable de línea StringBuffer stringBuffer = new StringBuffer (); Línea de cadena = ""; while ((línea = ...