如何解析一个 html 页面并使用 class 名称或 html 标签的 ID 取出文本?

How to parse one html page and take out text using class name or id of a html tag?

我想解析一个 html 页面并使用 class 名称或 html 标签的 ID 取出文本。

Apache tika 还是 jsoup?向我建议任何工具名称,它可以更好地控制使用特定标签、id 或 html 页面的 class 名称来操作和取出文本。

我用Jsoup给你举了三个用例的例子,请看代码中的注释:

  • get div elements by class name
  • get all div elements by tag name
  • get element by id
String html = "...";
Document doc = Jsoup.parse(html);

// get div elements by class name 
Elements divs = doc.select("div.myclass");
for (Element div : divs) {
    // print containing text
    System.out.println(div.text());
}

// get all div elements by tag name
divs = doc.getElementsByTag("div");
for (Element div : divs) {
    // print containing text
    System.out.println(div.text());
}

// get element by id
String id = "...";
Element element = doc.getElementById(id);
System.out.println(element.text());