📜  jsoup-提取文本(1)

📅  最后修改于: 2023-12-03 15:02:26.353000             🧑  作者: Mango

Jsoup - 提取文本

Jsoup是一款用于Java编程语言的HTML解析器库,用于从HTML文档中提取和操作数据。它提供了类似于jQuery的语法以及强大的HTML处理工具。这份教程将会介绍如何使用Jsoup提取HTML文档中的文本内容。

准备工作

在开始使用Jsoup之前,你需要先下载它。你可以在官方网站下载Jsoup的最新版本。

在下载完Jsoup之后,你需要将它添加到你的项目中。你可以将jsoup JAR文件导入你的项目,或者在Maven或Gradle的构建文件中添加Jsoup的依赖。

dependencies {
    implementation 'org.jsoup:jsoup:1.13.1'
}
提取文本

接下来,我们将看一些如何使用Jsoup提取HTML文档中的文本内容的例子。我们将使用Jsoup解析一个包含一系列HTML标签的HTML文档。

<html>
    <head>
        <title>Jsoup - 提取文本</title>
    </head>
    <body>
        <h1>Jsoup - 提取文本</h1>
        <p>Jsoup是一款用于Java编程语言的HTML解析器库,用于从HTML文档中提取和操作数据。</p>
        <ul>
            <li>提供了类似于jQuery的语法以及强大的HTML处理工具</li>
            <li>可以从HTML文档中提取数据</li>
            <li>可以修改HTML文档中的数据</li>
        </ul>
        <table>
            <tr>
                <th>姓名</th>
                <th>电话</th>
            </tr>
            <tr>
                <td>张三</td>
                <td>123456789</td>
            </tr>
            <tr>
                <td>李四</td>
                <td>987654321</td>
            </tr>
        </table>
    </body>
</html>
提取标题

你可以使用Jsoup提取HTML文档的标题。下面的例子将演示如何获取HTML文档的标题。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class Demo {
    public static void main(String[] args) throws Exception {
        String html = "<html><head><title>Jsoup - 提取文本</title></head><body><h1>Jsoup - 提取文本</h1><p>Jsoup是一款用于Java编程语言的HTML解析器库,用于从HTML文档中提取和操作数据。</p><ul><li>提供了类似于jQuery的语法以及强大的HTML处理工具</li><li>可以从HTML文档中提取数据</li><li>可以修改HTML文档中的数据</li></ul><table><tr><th>姓名</th><th>电话</th></tr><tr><td>张三</td><td>123456789</td></tr><tr><td>李四</td><td>987654321</td></tr></table></body></html>";
        Document document = Jsoup.parse(html);
        String title = document.title();
        System.out.println("Title: " + title); // 输出:Title: Jsoup - 提取文本
    }
}
提取文本内容

你可以使用Jsoup提取HTML文档中的文本内容。下面的例子将演示如何获取HTML文档中的h1元素的文本内容。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class Demo {
    public static void main(String[] args) throws Exception {
        String html = "<html><head><title>Jsoup - 提取文本</title></head><body><h1>Jsoup - 提取文本</h1><p>Jsoup是一款用于Java编程语言的HTML解析器库,用于从HTML文档中提取和操作数据。</p><ul><li>提供了类似于jQuery的语法以及强大的HTML处理工具</li><li>可以从HTML文档中提取数据</li><li>可以修改HTML文档中的数据</li></ul><table><tr><th>姓名</th><th>电话</th></tr><tr><td>张三</td><td>123456789</td></tr><tr><td>李四</td><td>987654321</td></tr></table></body></html>";
        Document document = Jsoup.parse(html);
        Element h1 = document.select("h1").first();
        String text = h1.text();
        System.out.println("Text: " + text); // 输出:Text: Jsoup - 提取文本
    }
}
提取列表项

你可以使用Jsoup提取HTML文档中的列表项。下面的例子将演示如何获取HTML文档中的ul元素的所有li子元素的文本内容。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Demo {
    public static void main(String[] args) throws Exception {
        String html = "<html><head><title>Jsoup - 提取文本</title></head><body><h1>Jsoup - 提取文本</h1><p>Jsoup是一款用于Java编程语言的HTML解析器库,用于从HTML文档中提取和操作数据。</p><ul><li>提供了类似于jQuery的语法以及强大的HTML处理工具</li><li>可以从HTML文档中提取数据</li><li>可以修改HTML文档中的数据</li></ul><table><tr><th>姓名</th><th>电话</th></tr><tr><td>张三</td><td>123456789</td></tr><tr><td>李四</td><td>987654321</td></tr></table></body></html>";
        Document document = Jsoup.parse(html);
        Elements items = document.select("ul li");
        for (Element item : items) {
            String text = item.text();
            System.out.println("Item: " + text); // 输出:Item: 提供了类似于jQuery的语法以及强大的HTML处理工具, Item: 可以从HTML文档中提取数据, Item: 可以修改HTML文档中的数据
        }
    }
}
提取表格数据

你可以使用Jsoup提取HTML文档中的表格数据。下面的例子将演示如何获取HTML文档中的table元素的所有td子元素的文本内容。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Demo {
    public static void main(String[] args) throws Exception {
        String html = "<html><head><title>Jsoup - 提取文本</title></head><body><h1>Jsoup - 提取文本</h1><p>Jsoup是一款用于Java编程语言的HTML解析器库,用于从HTML文档中提取和操作数据。</p><ul><li>提供了类似于jQuery的语法以及强大的HTML处理工具</li><li>可以从HTML文档中提取数据</li><li>可以修改HTML文档中的数据</li></ul><table><tr><th>姓名</th><th>电话</th></tr><tr><td>张三</td><td>123456789</td></tr><tr><td>李四</td><td>987654321</td></tr></table></body></html>";
        Document document = Jsoup.parse(html);
        Elements rows = document.select("table tr");
        for (Element row : rows) {
            Elements columns = row.select("td");
            if (columns.size() > 0) {
                String name = columns.get(0).text();
                String phone = columns.get(1).text();
                System.out.println("Name: " + name + ", Phone: " + phone); // 输出:Name: 张三, Phone: 123456789, Name: 李四, Phone: 987654321
            }
        }
    }
}
结论

Jsoup是一款非常强大的HTML解析器库。它提供了类似于jQuery的语法以及强大的HTML处理工具。通过该教程,你应该已经学会了如何使用Jsoup提取HTML文档中的文本内容。