weixin_43368698
@..
2018-12-20 18:15
采纳率: 80%
浏览 1.8k
已采纳

htmlunit爬取Ajax动态生成的网页获取不到ajax出来的数据

WebClient mWebClient = new WebClient(BrowserVersion.CHROME);
mWebClient.getOptions().setUseInsecureSSL(true);
mWebClient.getOptions().setCssEnabled(true);
mWebClient.getOptions().setActiveXNative(true);
mWebClient.getOptions().setJavaScriptEnabled(true);
mWebClient.getOptions().setThrowExceptionOnScriptError(false);
mWebClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
mWebClient.getOptions().setRedirectEnabled(true);
mWebClient.getOptions().setTimeout(0);
mWebClient.setJavaScriptTimeout(0);
mWebClient.waitForBackgroundJavaScript(0);
mWebClient.setAjaxController(new NicelyResynchronizingAjaxController());

    final HtmlPage mHtmlPage = 
        mWebClient.getPage("http://localhost:8080/#main/observationAnalysis/performance/performanceGlobal");
    Thread.sleep(60000);

    ResponseUtils.renderText(response, mHtmlPage.asText());

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • caozhy
    已采纳

    抓包看下服务器返回的数据对不对,报什么错。你访问的网站是你自己内网的,这个还是需要你自己调试。

    点赞 评论
  • xielinrui123
    炒鸡辣鸡123 2019-11-28 09:53

    htmlunit对ajax的支持不太好,可以使用谷歌开源的一个基于google headless模式的puppeteer框架来爬页面

    点赞 评论

相关推荐