使用 JSOUP 读取 HTML 页面并创建文本文件

Reading HTML Page and creating a text file using JSOUP

我正在尝试阅读 IMDB 的前 50 部电影列表。代码运行良好,但在 50 个列表中的第 43 个位置停止读取。

public class FetchData {

public static void main(String[] args) {
    try {
        // TODO code application logic here
        Document doc = Jsoup.connect("https://www.imdb.com/list/ls053181721/").userAgent("Mozilla/17.0").get();
        Elements temp = doc.select("div.lister-item-content");

        int i=0;
        File file = new File("C:\Demo Java\IMDBList.txt");
        FileWriter writer = new FileWriter(file);
        for(Element movieList : temp) {
            i++;
            System.out.println(i+" "+movieList.getElementsByTag("a").first().text());
            writer.write(+i+". "+movieList.getElementsByTag("a").first().text().toString()+"\n");

        }
        writer.close();
    } catch (IOException ex) {
        Logger.getLogger(FetchData.class.getName()).log(Level.SEVERE, null, ex);
    }

}

您通过 Jsoup 加载的 html 文档没有完全加载,因为它超过了 1MB 的默认最大正文大小。您需要增加请求的最大允许正文大小才能加载完整文档。

Document doc = Jsoup.connect("https://www.imdb.com/list/ls053181721/")
                    .userAgent("Mozilla/17.0")
                    .maxBodySize(0)
                    .get();

注意:添加 maxBodySize(0) 允许无限大小。

请参考:https://jsoup.org/apidocs/org/jsoup/Connection.html#maxBodySize-int-