JSoup не будет получать все предметы?

Итак, я пытаюсь разобрать простой список с помощью 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;
}

Так почему же в Список не входят все записи? Есть ли ошибка на веб-странице? Или, возможно, парсер? Могу ли я использовать обходной путь, чтобы обойти эту проблему? И что вызывает проблему в первую очередь?

1 ответ

Решение

Хорошо, выпущенный был вызван изменением в версии 1.72 JSoup и выше. Вам просто нужно изменить настройки по умолчанию следующим образом:

public ArrayList<String> initializeMangaNameList(){
    Document doc;
    try {
        doc = Jsoup.connect("http://www.mangahere.com/mangalist/").maxBodySize(0).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;

}

Важным отличием является установка maxBodySize на 0, чтобы он допускал файлы неограниченного размера. Более подробную информацию можно найти в документации. Это позволит вам иметь неограниченный размер тела и загружать все необходимые данные.

Другие вопросы по тегам