Проблема извлечения данных из класса span с помощью Jsoup - PullRequest
0 голосов
/ 10 января 2019

Здравствуйте, мне нужно решение моего кода ниже. Я пытался извлечь текст из класса span, но кажется, что весь текст, извлеченный одновременно, возможно ли, чтобы я мог извлечь текст по одному.

JAVA CODE

public class Exractor {
    public static void main(String[] args) throws IOException {
        Document d = Jsoup.connect("https://www.brainyquote.com/topics").get();
        Elements e = d.select("div.col-md-4");
        for(Element el : e){
            Elements name = el.getElementsByTag("a");
            String text = name.text();
            System.out.println(text);
        }
    }
}

HTML ВЫХОД

<div class="col-sm-6 col-md-4"> 
 <div class="bq_fl content indexContent topicContent"> 
  <div class="row"> 
   <div class="col-sm-6 col-xs-6"> 
    <div class="bqLn"> 
     <div class="bqLn"> 
      <a href="/topics/age" class="topicIndexChicklet" onclick="topicCl('/topics/age',1,'Index')">
	  <span class="topicContentName">Age</span> <span class="topicIndexArrow">
		<i class="fa fa-chevron-right" aria-hidden="true"></i>
	  </span> 
       <div style="clear:both"></div></a> 
     </div> 
    </div> 
    <div class="bqLn"> 
     <div class="bqLn"> 
      <a href="/topics/alone" class="topicIndexChicklet" onclick="topicCl('/topics/alone',2,'Index')">
	  <span class="topicContentName">Alone</span> <span class="topicIndexArrow">
	  <i class="fa fa-chevron-right" aria-hidden="true"></i>
	  </span> 
       <div style="clear:both"></div></a> 
     </div> 
    </div> 
    </div> 
   </div> 
  </div> 
 </div> 
</div>

ВЫХОД JAVA

Age Alone Удивительный гнев Годовщина Архитектура Искусство Отношение Красота Лучший день рождения Мозговой Бизнес Автомобиль Шанс Изменить Рождество Общение Компьютеры Прохладный Мужество Папа Знакомства Смерть Дизайн Диета Мечты Пасха Образование Экологическое равенство Опыт Неудача Вера Семья Знаменитый день отца Страх финансов Финансы Фитнес Прощение Свобода Дружба Дружба Забавное будущее Садоводство Бог Доброе правительство Выпускной Большое счастье Здоровье История Дома Надежда Юмор Воображение Независимость Вдохновенный интеллект Ревность Знание Лидерство Обучение Правовая жизнь Любовь Брак Медицинский День памяти мужчин Мама Деньги Утро День матери Мотивационные фильмы Движение к музыке Природа Новогоднее воспитание детей Терпение Патриотизм Мир Любимая поэзия Политика Позитивные отношения власти Религия Уважение Романтический грустный день Святого Патрика Наука Улыбка Общество Космос Спорт Сила Успех Сочувствие Учитель технологии Подросток Благодарен День благодарения Путешествие во времени Доверие Правда День святого Валентина День ветеранов Война Свадьба Мудрость Женщины Работа

ВЫХОД Ожидается

  • Возраст
  • Один
  • Удивительно
  • Гнев

Я делаю что-то не так, но не могу понять, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 10 января 2019
public class Exractor {
    public static void main(String[] args) throws IOException {
        Document d = Jsoup.connect("https://www.brainyquote.com/topics").get();
        Elements e = d.select("div.col-md-4");
        for(Element el : e){
            Elements names = el.getElementsByTag("a"); //getElementsByTag returns elements
        for(Element name: names) {
            String text = name.text();
            System.out.println(text);
            }
        }
    }
}

В вашем коде el.getElementsByTag ("a"); Возвращенные элементы. получение текста () с уровня элементов Получить объединенный текст этого элемента и всех его дочерних элементов.

...