如何解析包含Javascript的网页?
我有一个使用Javascript创建表的网页。现在我在Java项目中使用JSoup来解析网页。顺便说一句,JSoup无法运行Javascript,因此无法生成表,网页的源代码也不完整。 如何包含该脚本创建的HTML代码,以便使用JSoup解析其内容?你能举个简单的例子吗?谢谢大家! 网页示例:如何解析包含Javascript的网页?,java,javascript,html-parsing,jsoup,Java,Javascript,Html Parsing,Jsoup,我有一个使用Javascript创建表的网页。现在我在Java项目中使用JSoup来解析网页。顺便说一句,JSoup无法运行Javascript,因此无法生成表,网页的源代码也不完整。 如何包含该脚本创建的HTML代码,以便使用JSoup解析其内容?你能举个简单的例子吗?谢谢大家! 网页示例: <!doctype html> <html> <head> <title>A blank HTML5 page</title>
<!doctype html>
<html>
<head>
<title>A blank HTML5 page</title>
<meta charset="utf-8" />
</head>
<body>
<script>
var table = document.createElement("table");
var tr = document.createElement("tr");
table.appendChild(tr);
document.body.appendChild(table);
</script>
<p>First paragraph</p>
</body>
</html>
一个空白的HTML5页面
var table=document.createElement(“表”);
var tr=document.createElement(“tr”);
表1.儿童(tr);
document.body.appendChild(表);
第一段
输出应为:
<!DOCTYPE html>
<html>
<head>
<title>
A blank HTML5 page
</title>
<meta charset="utf-8"></meta>
</head>
<body>
<script>
var table = document.createElement("table");
var tr = document.createElement("tr");
table.appendChild(tr);
document.body.appendChild(table);
</script>
<table>
<tr></tr>
</table>
<p>
First paragraph
</p>
</body>
</html>
一个空白的HTML5页面
var table=document.createElement(“表”);
var tr=document.createElement(“tr”);
表1.儿童(tr);
document.body.appendChild(表);
第一段
顺便说一句,JSoup不包括table标记,因为它不能执行Javascript。我怎样才能做到这一点呢?第一种可能性 您在Jsoup之外有一些选项,即使用“真实”浏览器并与之交互。这是一个很好的选择。使用selenium,您可以使用不同的浏览器作为后端,在您的情况下,非常轻量级的浏览器可能已经可以了。如果调用更复杂的JavaScript,通常没有其他选择,只能运行完整的浏览器。幸运的是,它的足迹并不太差(无头和所有) 第二种可能性
另一种方法是使用JSoup获取javascript源代码,并在Java中启动javascript解释器。你可以用这个。但是,如果您选择这种方式,您也可以直接使用HtmlUnit,这可能有点笨重。您最好尝试与Javascript用于填充表的AJAX服务接口。@chrylis我想现在有了AJAX服务@克劳迪奥桑托斯:这不是一个重复的问题,因为他们在问如何从脚本中获取值。我想解析该脚本的HTML输出,它是不同的@安杰洛:我相信这个答案会对你有所帮助。这不是重复的问题,因为他问的是另一个不同的问题。答案中没有我想要的,因为他想从静态脚本中提取信息。我想解析由该脚本生成的html(这是不同的!)。Rhino可能会有所帮助,但文档似乎没有解释有关Javascript计算和解析的内容