JSoup извлекает только определенные части из Википедии

#java #android #html #jsoup

#java #Android #HTML #jsoup

Вопрос:

Мне удалось извлечь информацию из «таблиц» в правой части статьи Википедии. Однако я также хочу получить абзацы из основного текста статей.

Код, который я использую atm, работает только около 60% времени (Nullpointers или вообще без текста). В приведенном ниже примере меня интересуют только первые абзацы, однако это не имеет отношения к моему вопросу.

На рисунке ниже я показываю, из каких частей мне нужен текст. Я хочу иметь возможность перебирать все

части в блоке < divid=»mw-content-text»….class=»mw-content-ltr»> .

 StringBuilder sb = new StringBuilder();
    String url = baseUrl   location;
    Document doc = Jsoup.connect(url).get();
    Elements paragraphs = doc.select(".mw-content-ltr  p");

    Element firstParagraph = paragraphs.first();
    Element elementTwo = firstParagraph.nextElementSibling();
    if (elementTwo == null) {
        for (int i = 0; i < 2; i  ) {
            sb.append(paragraphs.get(i).text());

        }
    } else {
        sb.append(elementTwo.text());
    }

    return sb.toString();
  

введите описание изображения здесь

Комментарии:

1. Не нужно идти этим путем. В Википедии есть API, который позволяет запрашивать страницы: mediawiki.org/wiki/API (напр. en.wikipedia.org/w /… )

2. Выглядит хорошо, у вас есть какие-либо идеи, как будет выглядеть запрос, например, получить первый и второй абзац из статьи?

3. Ну, вам придется проделать некоторую работу самостоятельно. Если вы где-то застряли, не стесняйтесь вернуться и задать несколько вопросов.