优雅地解析HTML文档-Jsoup

一、介绍

    Jsoup 是一个流行的 Java HTML 解析器,它主要用于用于从 Web 页面中提取并解析 HTML 数据。它提供了一种简单而优雅的方式,使得开发人员可以快速解析 HTML 并从中提取数据。

二、特性

1. 遵循 HTML5 标准。

2. 解析速度快,灵活性强。

3. API 易于使用,并提供了丰富的文档。

4. 可以直接从UTL、文件或字符串中获取 HTML 内容。

三、原理

    Jsoup 解析 HTML 的原理是先将 HTML 文件转换成一个 Document 对象,然后使用类似于 jQuery 的 API,通过选择器语法来读取或操作 HTML。Jsoup 会根据要求从文档中查找元素或属性,并提取所需的内容。

四、使用场景

1. 爬取网页数据

2. 分析和处理 HTML 文档

3. 抓取数据并进行处理

五、注意事项

1. Jsoup 的 API 只能用于解析 HTML,不能解析 XML 文档。

2. 解析过程中出现异常时,需要使用异常处理机制来避免程序异常中止。

3. 在解析之前,需要确认所解析的文档是否是一份合法正确的 HTML 文档。

六、实际场景

1. 案例一

    (1) 场景

    使用Jsoup进行网络爬虫的示例。该示例用于爬起博客文章内容。

    (2) 代码

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

import java.io.IOException;

/**
 * 使用Jsoup爬取一个简单页面
 *
 * @author wxy
 * @since 2023-05-31
 */
public class JsoupCase1 {
    public static void main(String[] args) throws IOException {
        Document document = Jsoup
                .connect("https://blog.51cto.com/u_15898747/6107276")
                .get();

        // 获取文章标题
        Elements title = document
                .select("div[class=title]>h1");
        System.out.println("文章标题: ");
        // 打印文章标题文本内容
        System.out.println(title.text());

        // 获取文章内容
        Elements contents = document
                .select("div[id=container]");
        System.out.println("文章内容: ");
        for (Element content : contents) {
            for (Element element : content.children()) {
                // 打印内容标签中的文本内容
                System.out.println(element.text());
            }
        }
    }
}

    爬取结果如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒阳快跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值