Red de conocimiento informático - Material del sitio web - Cómo utilizar JAVA para rastrear la página después de cargar AJAX

Cómo utilizar JAVA para rastrear la página después de cargar AJAX

El rastreo ordinario no puede capturar los datos después de cargar js. Puede usar phantomjs o htmlUnit para lograr esto. gargoylesoftware.htmlunit.CookieManager

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>

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");

}

}

}

}