Cómo utilizar JAVA para rastrear la página después de cargar AJAX
importar com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController
importar com.gargoylesoftware.htmlunit.WebClient
importar com.gargoylesoftware. htmlunit.WebClient.htmlunit.WebClient;
clase pública htmlUnitUtils {
WebClient estático webClient = null;
estático Aleatorio aleatorio = new Random(); p>
p>
estático{
//1. Crear objeto
webClient = new WebClient(BrowserVersion.CHROME);
/ 2.getOptions() .setRedirectEnabled(true);
//Establece el tiempo de espera de la conexión, aquí es 10 segundos.
setCookieManager(1000 * 15);
// Iniciar gestión de cookies
webClient.getOptions().setCookieManager(1000 * 15);
// Iniciar cookie Gestión
WebClient.setAjaxController(new NicelyResynchronizingAjaxController());
// Se produjo un error durante el tiempo de ejecución de js, ya sea para lanzar una excepción
webClient.getOptions( ).setThrowExceptionOnScriptError (false);
//Establecer información de solicitud del navegador
webClient.addRequestHeader("Aceptar", "text/html, application/xhtml xml, application/xml; q =0.9 , */*; q=0.8");
webClient.addRequestHeader("Aceptar-Encoding", "gzip, deflate");
webClient.addRequestHeader("Aceptar -Idioma" ", "zh-CN, zh; q=0,8, zh-TW; q=0,7, zh-HK; q=0,5, en-US; q=0,3, en; q=0,2"); p>
webClient.addRequestHeader("Conexión", "keep-alive");
webClient.addRequestHeader("Solicitudes de actualización-inseguras", "1");
}
runJs vacío estático público(String url){
prueba {
webClient.addRequestHeader("User-Agent", Constant .useragents[random. nextInt(Constant .useragents.length)]);
//Esperando la ejecución de renderizado js tiempo de espera (milisegundos)
webClient.waitForBackgroundJavaScript(1000 * 10);
3.obtener página
webClient.getPage(url);
} catch (Excepción e) {
e. /p>
} finalmente {
if(webClient! = null){
webClient.close();
}
}
}
público estático void main(String[] args) {
runJs("http://www.gou.hk/ ");
System.setProperty("phantomjs.binary.path" , "D:\works\tool\phantomjs-2.1.1-windows\bin\\p
hantomjs.exe");
}
}
}
}