【JavaWeb】动态网页抓取

Jsoup无法获取Js及Ajax执行后的网页内容,用HtmlUnit抓取动态网页:

private String getPage(String url,boolean enabledJs,boolean ignoreSSL,boolean enabledCss,boolean enabledAjax) throws IOException {
        WebClient webClient = new WebClient(BrowserVersion.CHROME); //创建一个webclient
        webClient.getOptions().setJavaScriptEnabled(enabledJs); // 启动JS
        webClient.getOptions().setUseInsecureSSL(ignoreSSL);//忽略ssl认证
        webClient.getOptions().setCssEnabled(enabledCss);//禁用Css,可避免自动二次请求CSS进行渲染
        webClient.getOptions().setThrowExceptionOnScriptError(false);//运行错误时,不抛出异常
        if(enabledAjax)
            webClient.setAjaxController(new NicelyResynchronizingAjaxController());// 设置Ajax异步

        HtmlPage page = webClient.getPage(url);
        webClient.waitForBackgroundJavaScript(10000);
        return page.asXml();
    }
发布了236 篇原创文章 · 获赞 106 · 访问量 39万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览