我正在尝试访问由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进行解析?
J汤是服务器端处理框架,
我不知道你的最终目标是什么,我假设你想在同一个页面上使用它,所以我将使用Ajax,这样你就可以做到:
像这样的东西:
.
$( 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); }
});
});
我使用Jsoup来解析html文件,并从元素中提取所有可见的文本。问题是javascript变量中有一些html位明显被忽略了。取出这些碎片的最佳方案是什么? 示例: 在这个例子中,Jsoup只从标签中获取文本,这是它应该做的。如何从 跨度中获取文本?该解决方案必须应用于数千个不同的页面,因此我不能依赖具有相同名称的javascript变量之类的东西。
我对JavaScript非常陌生,我的工作任务是制作一个html解析器,它可以遍历HTML文件的行,找到ID标记,然后将其与excel表(或CSV)匹配,然后用电子表格/ CSV文件中的值交换ID。 注:我不是要求你为我做这件事;只是我已经查看了加载,我只是不知道我需要什么样的解析器。如果方向正确,那将是非常感谢的。 下面是一个带有ID的HTML文档示例:(ID的前缀是#IDHERE#,因为我还不
主要内容:Jsoup 获取HTML 语法,Jsoup 获取HTML 说明,Jsoup 获取HTML 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后获取内部 html 和外部 html 的方法的使用。 Jsoup 获取HTML 语法 document :文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 link : 元素对象表示表示锚标记的 html 节点元素。 link.outerHtml() : o
问题内容: 我正在尝试使用Java中的HtmlUnit登录网站。首先,我输入用户名,然后输入密码。之后,我需要从下拉框中选择一个选项。输入用户名和密码似乎有效,但是当我尝试从下拉框中选择项目时出现错误。谁能帮我解决这个问题?我的代码如下: 问题答案: 这是HTMLunit的单元测试中的代码。 请注意,他们使用的是getSelectsByName而不是getElementById。 这是这些单元测试
问题内容: 我正在尝试使用jsoup解析HTML。这是我第一次使用jsoup,并且我也阅读了有关它的一些教程。以下是我要解析的HTML表- 如果您看到我的下表,则它现在有3个(我只是为了理解目的将其缩短为3个表行,但总的来说会更多)。现在,我想从我的下表中提取出它的对应信息,例如-我将提取其群集状态及其状态为关闭的所有主机名。 正如你可以看到下面的群集名称,我有两个主机名和其地位,但地位。 因此,
正如您在下面看到的集群名称,我有两个主机名和,其中状态为,但状态为。 因此,我将打印作为集群名,并打印作为主机名,因为它已关闭。使用JSOUP可以做到这一点吗? 到目前为止,我能够使用jsoup提取整个HTML表,但不确定如何提取集群名和主机名- 更新:- 表中可能有两个集群名称,如下所示- 现在,如果您看到上面,我有两个集群名称--一个是,另一个是,所以我想找到所有仅为集群名称关闭的计算机。