java - Jsoup 没有提取所有预期的元素

标签 java linux jsoup

出于某种原因,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/

相关文章:

java - Spring 循环依赖与范围 PROTOTYPE

JAVA - 存储固定大小的图像blob

linux - api-ms-win-crt-runtime-l1-1-0.dll._get_narrow_winmain_command_line

java - jsoup 发送带有域和路径的 cookie

java - 平滑渐变背景动画java

java - 从两个 Date 对象计算持续时间的错误时间(以分钟为单位)

android - 无法在 Ubuntu 上启动 uiautomatorviewer

android - 我无法启动索尼 Xperia S 上的引导加载程序(已解锁并已 root)

java - 尽管实际和预期相同,但 JUnit 给出 ComparisonFailure

java - Jsoup - 打印 element.data() 不打印任何内容