Jsoup:获取所有标题标签

时间:2012-10-20 12:06:36

标签: java jsoup

我正在尝试使用Jsoup解析html文档以获取所有标题标记。另外我需要将标题标签分组为[h1] [h2]等...

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

但是这给了我一个空数组。

3 个答案:

答案 0 :(得分:21)

你的选择器意味着 h-Tag,其属性为“0-6” - 不是正则表达式。但您可以组合使用多个选择器:hh = doc.select("h0, h1, h2, h3, h4, h5, h6");

分组:您是否需要一个包含所有h-Tags +组的组,每个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

答案 1 :(得分:2)

使用 doc.select(“h1,h2,h3,h4,h5,h6”)获取所有标题标记。 使用 doc.select(“h1”)分别获取每个标记。在http://preciselyconcise.com/apis_and_installations/jsoup/j_selector.php

中查看使用select语句可以执行的各种操作

答案 2 :(得分:0)

这里是答案的Scala版本,该版本使用Ammonite的语法为Jsoup指定Maven坐标:

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()