Raspando la página aspx usando htmlUnit
Frecuentes
Visto 1,625 veces
0
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");
}
}
1 Respuestas
1
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 java web-scraping htmlunit or haz tu propia pregunta.