出于某种原因,Jsoup 只提取了 2207 个元素,尽管其中肯定有更多元素。例如,类 XmlPullParserFactory
的 URL 未被读取,尽管它位于类 jd-linkcol
的元素内。
下面是我的代码:
try {
String url = "https://developer.android.com/reference/classes.html";
Document document = Jsoup.connect(url).timeout(0).get();
Elements classes = document.getElementsByClass("jd-linkcol");
BufferedWriter fw = new BufferedWriter(new FileWriter(new File("/tmp/test.txt")));
System.out.println(classes.size());
for (int i = 0; i < classes.size(); i++) {
Elements links = classes.get(i).getElementsByTag("a");
String classUrl = links.attr("abs:href");
if (classUrl.contains("XmlPullParserFactory")) {
System.out.println(classUrl);
}
fw.write(classUrl + "\n");
}
fw.flush();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我正在使用 Jsoup 1.7.3,我已经有一段时间没有更新了。
最佳答案
默认情况下,最大正文大小限制为 1MB。使用默认设置,您只能获取从 AbsListView 到 MediaRouter.UserRouteInfo 的前 2207 个元素,这些元素符合 1MB 的默认大小。要获取所有元素,您只需使用以下方法更改默认设置:
Document document = Jsoup.connect(url).timeout(0).maxBodySize(1024*1024*10).get();
//for example to set the max body size to 10 MB
或
//to set it to unlimited size
Document document = Jsoup.connect(url).timeout(0).maxBodySize(0).get();
关于java - Jsoup 没有提取所有预期的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47281355/