Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSoup不适用于递归级别_Java_Html_Jsoup - Fatal编程技术网

Java JSoup不适用于递归级别

Java JSoup不适用于递归级别,java,html,jsoup,Java,Html,Jsoup,我试图在递归级别上使用jsoup选择器,它返回空结果 HTML结构 您的代码使用最新的Jsoup版本1.11.3对我有效 Document doc = Jsoup.parse("<body> <div> <div> <div class=\"classA\"/> </div> </div> </body>"); int size = doc.body().select(".classA").size(); Sys

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

HTML结构
您的代码使用最新的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之间,因为存在一个错误,导致类只能以小写形式存储。已在版本1.10.3中修复。 您试图解析的网站使用JavaScriptAJAX加载其他内容。Jsoup只能在修改JavaScript之前查看原始HTML。要查看原始HTML,请访问web浏览器中的网页,然后按CTRL+U查看源代码。不要使用debugger/firebug和Input,因为它们会显示最终的、已经修改的HTML代码。 评论回应:


如果没有要解析的URL,很难猜测。您的浏览器可能会从不同的URL加载此网页的动态部分。您可以尝试只解析这些HTML片段。检查我的答案:

你能验证doc.body是否真的是你所认为的吗?你使用的是哪个版本的Jsoup?谢谢@Krystian。我想我的问题是第二个。是否有任何方法可以强制JSoup仅在DOM元素上的Javascript更新之后解析页面?
Document doc = Jsoup.connect("https://someUrl//url").get();
int size=doc.body().select(".classA").size(); // Returns 0
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