javascript解析Java中包含JS的HTML页面
我正在尝试解析一个网页,其中包含一些JS。到目前为止,我正在使用Jsoup
在Java中解析html,这正如期工作。但我无法解析JavaScript。下面是HTML页面的片段-
<script type="text/javascript">
var element = document.createElement("input");
element.setAttribute("type", "hidden");
element.setAttribute("value", "");
element.setAttribute("name", "AzPwXPs");
element.setAttribute("id", "AzPwXPs");
var foo = document.getElementById("dnipb");
foo.appendChild(element);
var element1 = document.createElement("input");
element1.setAttribute("type", "hidden");
element1.setAttribute("value", "6D6AB8AECC9B28235F1DE39D879537E1");
element1.setAttribute("name", "ZLZWNK");
element1.setAttribute("id", "ZLZWNK");
foo.appendChild(element1);
</script>
我想用它们的name
/id
读取这两个值。这样,在解析之后,我可以得到以下结果-
AzPwXPs=
ZLZWNK=6D6AB8AECC9B28235F1DE39D879537E1
在这种情况下如何解析
# 1 楼答案
我已经在css文件中找到了相同的url
将javascript放在一个字符串中,并应用正则表达式
问候,, 雨果佩德罗萨
# 2 楼答案
在搜索用JavaScript解析页面的解决方案时,我曾几次偶然发现这个问题,但所提供的解决方案并不完美。通过使用JBrowserDriver和JSoup解析JavaScript页面,我找到了该问题的纯Java解决方案
简单的例子:
# 3 楼答案
一旦您从JSoup获得了
<script>
元素的文本内容,您就可以使用Caja JS parser解析JS,然后遍历解析树找到您要查找的内容# 4 楼答案
您可以尝试使用查询库。用它容易多了
# 5 楼答案
Selenium的Webdriver非常棒:http://docs.seleniumhq.org/docs/03_webdriver.jsp
请参阅此答案,了解您正在尝试执行的操作的示例: Using Selenium Web Driver to retrieve value of a HTML input