【发布时间】:2013-12-05 01:20:56
【问题描述】:
所以,我正在尝试使用 JSoup 解析一个简单的列表。不幸的是,该程序只返回列表中以 N 开头的条目为止的条目。我不知道为什么会这样。这是我的代码:
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 个结果,这是正确的。
-
JSoup 1.7.2 仅返回 7031 个结果。
-
BINGO 发现问题:1.72 更新日志向 Jsoup.Connection 添加了最大正文响应大小,以防止尝试读取超大文档时内存不足。默认为 1MB。
-
@Skylion 您应该回答您的问题并将其标记为已关闭。不要只是将其留在 cmets 中。这是一个非常有趣的案例,肯定会对其他人有所帮助。
标签: java html list parsing jsoup