使用 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-
我正在尝试阅读 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-