gpt4 book ai didi

java - JSoup 不适用于递归级别

转载 作者:行者123 更新时间:2023-12-02 10:08:47 25 4
gpt4 key购买 nike

我尝试在递归级别上使用 jsoup 选择器,该选择器返回空结果。

HTML 结构

<body>
<div>
<div>
<div class="classA"/>
</div>
</div>
</body>

Java代码

Document doc = Jsoup.connect("https://someUrl//url").get();
int size=doc.body().select(".classA").size(); // Returns 0

最佳答案

您的代码适用于我使用最新的 Jsoup 版本 1.11.3。

Document doc = Jsoup.parse("<body> <div> <div> <div class=\"classA\"/> </div> </div> </body>");
int size = doc.body().select(".classA").size();
System.out.println(size); // displays: 1

问题的可能原因:

  • 您正在使用较旧的 Jsoup 版本,即 1.9.2 和 1.10.3 之间的版本,因为存在一个错误,导致类仅存储为小写形式。 https://github.com/jhy/jsoup/issues/814 https://github.com/jhy/jsoup/issues/830已在版本 1.10.3 中修复。
  • 您尝试解析的网站使用 JavaScript(AJAX) 加载附加内容。 Jsoup 只能“看到”JavaScript 修改之前的原始 HTML。要查看原始 HTML,请在 Web 浏览器中访问网页并按 CTRL+U(查看源代码)。不要使用调试器/firebug 和 Inpect,因为它们显示最终的、已修改的 HTML 代码。

评论回复:

如果没有您尝试解析的 URL,则很难猜测。您的浏览器可能从不同的 URL 加载此网页的动态部分。您可以尝试仅解析这些 HTML 片段。在这里查看我的答案:How to Load Entire Contents of HTML - Jsoup

关于java - JSoup 不适用于递归级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55148317/

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