如何解析包含Javascript的网页?

我有一个使用Javascript创建表的网页。 现在我在我的Java项目中使用JSoup来解析网页。 顺便说一句,JSoup无法运行Javascript,因此不会生成表格,并且网页的来源不完整。 如何包含该脚本创建的HTML代码,以便使用JSoup解析其内容? 你能提供一个简单的例子吗? 谢谢!

网页示例:

   A blank HTML5 page     var table = document.createElement("table"); var tr = document.createElement("tr"); table.appendChild(tr); document.body.appendChild(table);  

First paragraph

输出应该是:

     A blank HTML5 page      var table = document.createElement("table"); var tr = document.createElement("tr"); table.appendChild(tr); document.body.appendChild(table);  

First paragraph

顺便说一句,JSoup不包含表标记,因为它无法执行Javascript。 我怎样才能做到这一点?

第一种可能性

你在Jsoup之外有一些选择,即使用“真正的”浏览器并与之交互。 一个很好的选择是selenium webdriver 。 使用selenium,您可以使用不同的浏览器作为后端,也许在您的情况下,非常轻量级的htmlUnit已经可以使用。 如果调用更复杂的JavaScript,则通常没有其他选择来运行完整的浏览器。 幸运的是, phantomjs在那里,它的足迹并不太糟糕(无头和所有)。

第二种可能性

另一种方法可能是您使用JSoup获取javascript源并在Java中启动JavaScript解释器。 为此你可以使用Rhino 。 但是,如果你走那条路,你也可以直接使用HtmlUnit,这可能不那么笨重。