如果网页很大,JSOUP 无法下载完整 html。任何替代方案或任何解决方法?

JSOUP not downloading complete html if the webpage is big in size. Any alternatives to this or any workarounds?

我试图获取 HTML 页面并解析信息。我刚刚发现有些页面使用 Jsoup 没有完全下载。我在命令行上使用 curl 命令进行了检查,然后下载了完整的页面。最初我认为它是特定于站点的,但后来我只是尝试使用 Jsoup 随机解析任何大网页,发现它没有下载完整的网页。我尝试指定用户代理和超时属性仍然无法下载。这是我试过的代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashSet;
import java.util.Set;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class JsoupTest {
    public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException, IOException {
        String urlStr = "http://en.wikipedia.org/wiki/List_of_law_clerks_of_the_Supreme_Court_of_the_United_States";
        URL url = new URL(urlStr);
        String content = "";
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
            for (String line; (line = reader.readLine()) != null;) {
                content += line;
            }
        }
        String article1 = Jsoup.connect(urlStr).get().text();
        String article2 = Jsoup.connect(urlStr).userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").referrer("http://www.google.com").timeout(30000).execute().parse().text();
        String article3 = Jsoup.parse(content).text();
        System.out.println("ARTICLE 1 : "+article1);
        System.out.println("ARTICLE 2 : "+article2);
        System.out.println("ARTICLE 3 : "+article3);
    }
}

在第 1 条和第 2 条中,当我使用 Jsoup 连接到网站时,我没有获得完整的信息,但是在使用 URL 连接时,我获得了完整的页面。所以基本上第 3 条是完整的,它是使用 URL 完成的。我试过 Jsoup 1.8.1Jsoup 1.7.2

使用方法maxBodySize:

String article = Jsoup.connect(urlStr).maxBodySize(Integer.MAX_VALUE).get().text();