加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何使用Java中的HtmlUnit获取由javascript创建的Html,然后使用J

发布时间:2020-12-15 02:13:19 所属栏目:Java 来源:网络整理
导读:我试图访问由一些 Javascript创建的网页上的一些内容.但是,我希望访问的内容是在页面加载后由javascript创建的,所以当我尝试用Jsoup解析时,这个Html源代码块无处可寻. 我使用HtmlUnit获取Html源码的代码如下: public static void main(String[] args) throw
我试图访问由一些 Javascript创建的网页上的一些内容.但是,我希望访问的内容是在页面加载后由javascript创建的,所以当我尝试用Jsoup解析时,这个Html源代码块无处可寻.

我使用HtmlUnit获取Html源码的代码如下:

public static void main(String[] args) throws IOException {
           java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF); 

    WebClient webClient = new WebClient(BrowserVersion.CHROME);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);

    String url = "myUrl.com";
    out.println("accessing " + url);

    HtmlPage page = webClient.getPage(url);

    out.println("waiting for js");
    webClient.waitForBackgroundJavaScriptStartingBefore(200);
    webClient.waitForBackgroundJavaScript(20000);

    out.println(page.asXml());

    webClient.close();
}

但是当我运行它时,不会打印应该创建的Html.我想知道如何获得这个由Javascript创建的Html源代码,使用HtmlUnit然后获得所述结果并将其传递给Jsoup进行解析?

解决方法

Jsoup是服务器端处理框架,
我不确定你的最终目标是什么,我假设你想在同一个页面中使用它,所以我将使用Ajax,你可以这样做:

>在准备好文件时,捕获文件dom
>发送它进行处理
>在服务器端显示结果.

在同一页上的sults.

$( document ).ready(function() {
    var allClientSideHtml = $("html").html();

var dataToSend = JSON.stringify({'htmlSendToSever':allClientSideHtml });
 $.ajax({ url: "your_Jsoup_server_url.jsp_or_php/YourJsoupParser",type: "POST",contentType: "application/json; charset=utf-8",dataType: "json",data: dataToSend,// pass that text to the server as a JSON String
        success: function (msg) { alert(msg.d); },error: function (type) { alert("ERROR!!" + type.responseText); }

    });

});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读