gpt4 book ai didi

java - 在Java中解析包含JS的HTML页面

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:35 25 4
gpt4 key购买 nike

我正在尝试解析包含一些 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

这种情况如何解析?

最佳答案

我在搜索使用 JavaScript 解析页面的解决方案时偶然发现了这个问题,但提供的解决方案并不完美。我通过使用 JBrowserDriver 找到了问题的纯 Java 解决方案。和 JSoup解析 JavaScript 操作的页面。

简单的例子:

    // JBrowserDriver part
JBrowserDriver driver = new JBrowserDriver(Settings
.builder().
timezone(Timezone.EUROPE_ATHENS).build());
driver.get(FETCH_URL);
String loadedPage = driver.getPageSource();

// JSoup parsing part
Document document = Jsoup.parse(loadedPage);
Elements elements = document.select("#nav-console span.data");

log.info("Found element count: {}", elements.size());

driver.quit();

关于java - 在Java中解析包含JS的HTML页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16316691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com