Raspando la página aspx usando htmlUnit

Estoy tratando de escribir un programa para acceder a la página. http://www.bmfbovespa.com.br/cias-listadas/empresas-listadas/BuscaEmpresaListada.aspx?Idioma=pt-br, y en la página haga clic en el botón 'todas'.

Se espera como resultado una tabla con el nombre de muchas empresas, pero no se porque no me sale.

Mi código:

package xx;

import java.io.IOException;
import java.net.MalformedURLException;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class teste {

    public static void main(String args[]) throws FailingHttpStatusCodeException, MalformedURLException, IOException
    {
       HtmlPage page = null;
       String url = "http://www.bmfbovespa.com.br/cias-listadas/empresas-listadas/BuscaEmpresaListada.aspx?Idioma=pt-br";

       WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17);

       webClient.getOptions().setThrowExceptionOnScriptError(false);
       webClient.getOptions().setCssEnabled(false);
       webClient.getOptions().setJavaScriptEnabled(false);
       webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
       webClient.getOptions().setTimeout(30000);

       page = webClient.getPage( url );

       System.out.println("Current page: Empresas Listadas | BM&FBOVESPA");

       HtmlElement theElement1 = (HtmlElement) page.getElementById("ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas");
       page = theElement1.click();

       System.out.println(page.asText());

       System.out.println("Test has completed successfully");
    }

}

preguntado el 03 de diciembre de 13 a las 13:12

1 Respuestas

Después de echar un vistazo a esa página, noté que está usando AJAX para obtener los datos. No parece estar esperando a que lleguen los datos y ese podría ser el problema.

Primero debe echar un vistazo a la Preguntas frecuentes sobre HTMLUnit.

Y entonces, probablemente esto pregunta podría ayudar para un ejemplo concreto sobre cómo hacer eso.

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.