Подтвердить что ты не робот

Jsoup: получить все теги заголовков

Я пытаюсь разобрать html-документ с Jsoup, чтобы получить все теги заголовков. Кроме того, мне нужно сгруппировать теги заголовков как [h1] [h2] и т.д.

     hh = doc.select("h[0-6]");

но это дает мне пустой массив.

4b9b3361

Ответ 1

Ваш селектор означает h-Tag с атрибутом "0-6" здесь - не регулярное выражение. Но вместо этого вы можете комбинировать несколько селекторов: hh = doc.select("h0, h1, h2, h3, h4, h5, h6");.

Группировка: Вам нужна группа со всеми h-тегами + группа для каждого тега h1, h2,... или только для каждого тега h1, h2,...?

Вот пример того, как вы можете это сделать:

// Group of all h-Tags
Elements hTags = doc.select("h1, h2, h3, h4, h5, h6");

// Group of all h1-Tags
Elements h1Tags = hTags.select("h1");
// Group of all h2-Tags
Elements h2Tags = hTags.select("h2");
// ... etc.

Если вам нужна группа для каждого тега h1, h2,..., вы можете удалить первый селектор и заменить hTags на doc в остальных.

Ответ 2

Используйте doc.select( "h1, h2, h3, h4, h5, h6" ), чтобы получить все теги заголовков. Используйте doc.select( "h1" ), чтобы получить каждый из этих тегов отдельно. Смотрите различные действия, которые вы можете сделать с помощью оператора select в http://preciselyconcise.com/apis_and_installations/jsoup/j_selector.php

Ответ 3

Вот версия ответа Scala, которая использует синтаксис Ammonite для указания координат Maven для Jsoup:

import $ivy.'org.jsoup:jsoup:1.11.3'
val html = scala.io.Source.fromURL("https://scalacourses.com").mkString
val doc = org.jsoup.Jsoup.parse(html)
doc.select("h1, h2, h3, h4, h5, h6, h7").eachText()