私はJSoupを使って単純なリストを解析しようとしています。残念なことに、プログラムは、リスト内のNで始まるエントリまでエントリを返します。なぜこれが当てはまるのか分かりません。ここに私のコードです:JSoupはすべてのアイテムを取得しませんか?
public ArrayList<String> initializeMangaNameList(){
Document doc;
try {
doc = Jsoup.connect("http://www.mangahere.com/mangalist/").get();
Elements items = doc.getElementsByClass("manga_info");
ArrayList<String> names = new ArrayList<String>();
for(Element item: items){
names.add(item.text());
}
return names;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
なぜリストにはすべてのエントリが含まれていませんか?ウェブページにエラーはありますか?あるいはパーサーですか?この問題を回避するための回避策を使用できますか?そして最初に問題の原因は何ですか?
は、jsoup-1.6.1でコードをテストしたところ、11906の結果を返しますが正しいです。 – melc
JSoup 1.7.2は、7031の結果しか返しません。 – Skylion
BINGO問題を見つけました:1.72 changelog非常に大きな文書 を読み込もうとするとメモリが足りなくなるのを防ぐため、Jsoup.Connectionに最大ボディレスポンスサイズを追加しました。デフォルトは1MBです。 – Skylion