htmlunit抓取动态网页(代码不好使怎么获取后台js完后的完整页面?)

优采云 发布时间: 2022-03-14 09:10

  htmlunit抓取动态网页(代码不好使怎么获取后台js完后的完整页面?)

  很多网站使用js或者jquery来生成数据。后台获取数据后,使用 document.write() 或 ("#id").html="" 写入页面,此时用浏览器查看源码是看不到数据的。

  HttpClient 不起作用。我在网上看了HtmlUnit,说后台js加载后可以得到完整的页面,但是我按照文章说的写了,还是不行。

  String url = "http://xinjinqiao.tprtc.com/admin/main/flrpro.do";

try {

WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);

//设置webClient的相关参数

webClient.getOptions().setJavaScriptEnabled(true);

webClient.getOptions().setCssEnabled(false);

webClient.setAjaxController(new NicelyResynchronizingAjaxController());

//webClient.getOptions().setTimeout(50000);

webClient.getOptions().setThrowExceptionOnScriptError(false);

//模拟浏览器打开一个目标网址

HtmlPage rootPage = webClient.getPage(url);

System.out.println("为了获取js执行的数据 线程开始沉睡等待");

Thread.sleep(3000);//主要是这个线程的等待 因为js加载也是需要时间的

System.out.println("线程结束沉睡");

String html = rootPage.asText();

System.out.println(html);

} catch (Exception e) {

}

  其实这段代码是行不通的。

  对于答案,典型的是链接页面,如何获取java程序中的数据?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线