如何使用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); } }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |