Я пытаюсь разобрать html-документ с Jsoup, чтобы получить все теги заголовков. Кроме того, мне нужно сгруппировать теги заголовков как [h1] [h2] и т.д.
hh = doc.select("h[0-6]");
но это дает мне пустой массив.
Я пытаюсь разобрать html-документ с Jsoup, чтобы получить все теги заголовков. Кроме того, мне нужно сгруппировать теги заголовков как [h1] [h2] и т.д.
hh = doc.select("h[0-6]");
но это дает мне пустой массив.
Ваш селектор означает 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
в остальных.
Используйте doc.select( "h1, h2, h3, h4, h5, h6" ), чтобы получить все теги заголовков. Используйте doc.select( "h1" ), чтобы получить каждый из этих тегов отдельно. Смотрите различные действия, которые вы можете сделать с помощью оператора select в http://preciselyconcise.com/apis_and_installations/jsoup/j_selector.php
Вот версия ответа 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()