很多網(wǎng)站是用js或Jquery 生成數(shù)據(jù)的,到后臺獲取到數(shù)據(jù)以后,用 document.write()或者("#id").html="" 的方式 寫到頁面中,這個時候用瀏覽器查看源碼是看不到數(shù)據(jù)的。HttpClient是不行的,看網(wǎng)上說HtmlUnit,說? 可以獲取后臺js加載完后的完整頁面,但是我按照文章上說的 寫了 ,都不好使。
String url = "http://xinjinqiao.tprtc.com/admin/main/flrpro.do";
try {
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);
//設(shè)置webClient的相關(guān)參數(shù)
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
//webClient.getOptions().setTimeout(50000);
webClient.getOptions().setThrowExceptionOnScriptError(false);
//模擬瀏覽器打開一個目標(biāo)網(wǎng)址
HtmlPage rootPage = webClient.getPage(url);
System.out.println("為了獲取js執(zhí)行的數(shù)據(jù) 線程開始沉睡等待");
Thread.sleep(3000);//主要是這個線程的等待 因為js加載也是需要時間的
System.out.println("線程結(jié)束沉睡");
String html = rootPage.asText();
System.out.println(html);
} catch (Exception e) {
}
其實這段代碼不好使。求解答,其中典型的就是這個鏈接的頁面,怎么能在java程序中獲取其中的數(shù)據(jù)?http://xinjinqiao.tprtc.com/admin/main/flrpro.do
添加回答
舉報
0/150
提交
取消