最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java利用Jsoup解析和操作HTML的技術指南

 更新時間:2025年03月10日 10:31:14   作者:拾荒的小海螺  
在現(xiàn)代 Java 開發(fā)中,處理 HTML 數(shù)據(jù)是一項常見需求,無論是抓取網(wǎng)頁數(shù)據(jù)、解析 HTML 文檔,還是操作 DOM 樹,Jsoup 都是一個強大的工具,本文將介紹 Jsoup 的基本功能,并通過多個詳細的代碼示例展示如何使用它解析和操作 HTML,需要的朋友可以參考下

1、簡述

在現(xiàn)代 Java 開發(fā)中,處理 HTML 數(shù)據(jù)是一項常見需求,無論是抓取網(wǎng)頁數(shù)據(jù)、解析 HTML 文檔,還是操作 DOM 樹,Jsoup 都是一個強大的工具。它是一個基于 Java 的 HTML 解析庫,支持從 URL、文件或字符串中解析 HTML,提供類似于 jQuery 的 API,便于選擇和操作 DOM 元素。

本文將介紹 Jsoup 的基本功能,并通過多個詳細的代碼示例展示如何使用它解析和操作 HTML。

2、為什么選擇 Jsoup?

  • 簡單易用:API 設計友好,功能豐富。
  • 強大的選擇器:支持 CSS 選擇器和 DOM 遍歷。
  • 靈活的 HTML 操作:可以輕松修改 HTML。
  • 兼容性強:支持解析 HTML5 和寬松的 HTML。
  • 高效:可以從 URL 快速抓取內容。

在使用 Jsoup之前,需要添加其依賴。以下是 Jsoup 的 Maven 依賴:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.15.4</version>
</dependency>

3、基本使用方法

Spring Boot 集成 Jsoup,以下示例將演示如何使用 Jsoup 解析 HTML 文件和操作 DOM。

3.1 從 URL 抓取網(wǎng)頁內容

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

public class JsoupFromUrl {
    public static void main(String[] args) {
        try {
            // 從 URL 抓取網(wǎng)頁內容
            Document document = Jsoup.connect("https://lsk-ww.cn").get();
            
            // 輸出網(wǎng)頁標題
            System.out.println("Title: " + document.title());
            
            // 輸出網(wǎng)頁的第一段文字
            System.out.println("First Paragraph: " + document.select("p").first().text());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3.2 從字符串解析 HTML

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

public class JsoupFromString {
    public static void main(String[] args) {
        String html = "<html><head><title>Jsoup Example</title></head>" +
                      "<body><p>Hello, Jsoup!</p></body></html>";

        // 解析 HTML 字符串
        Document document = Jsoup.parse(html);

        // 輸出標題和段落內容
        System.out.println("Title: " + document.title());
        System.out.println("Body Text: " + document.body().text());
    }
}

3.3 使用 CSS 選擇器提取內容

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

public class JsoupCssSelector {
    public static void main(String[] args) {
        String html = "<html><body>" +
                      "<div class='content'><h1>Header</h1><p>Paragraph 1</p></div>" +
                      "<div class='footer'><p>Footer Paragraph</p></div>" +
                      "</body></html>";

        // 解析 HTML
        Document document = Jsoup.parse(html);

        // 使用 CSS 選擇器提取內容
        Elements content = document.select(".content h1");
        System.out.println("Header: " + content.text());

        Elements footer = document.select(".footer p");
        System.out.println("Footer: " + footer.text());
    }
}

3.4 修改 HTML 內容

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

public class JsoupModifyHtml {
    public static void main(String[] args) {
        String html = "<html><body><p>Original Paragraph</p></body></html>";

        // 解析 HTML
        Document document = Jsoup.parse(html);

        // 修改段落內容
        document.select("p").first().text("Updated Paragraph");

        // 輸出修改后的 HTML
        System.out.println(document.html());
    }
}

3.5 提取網(wǎng)頁中的鏈接和圖片

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

public class JsoupExtractLinks {
    public static void main(String[] args) {
        String html = "<html><body>" +
                      "<a  +
                      "<img src='image.jpg' alt='Example Image'>" +
                      "</body></html>";

        // 解析 HTML
        Document document = Jsoup.parse(html);

        // 提取鏈接
        Elements links = document.select("a[href]");
        for (Element link : links) {
            System.out.println("Link: " + link.attr("href") + " Text: " + link.text());
        }

        // 提取圖片
        Elements images = document.select("img[src]");
        for (Element image : images) {
            System.out.println("Image: " + image.attr("src") + " Alt: " + image.attr("alt"));
        }
    }
}

3.6 處理表單數(shù)據(jù)

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

public class JsoupFormExample {
    public static void main(String[] args) {
        try {
            // 提交表單
            Connection.Response response = Jsoup.connect("https://example.com/login")
                    .data("username", "user123")
                    .data("password", "pass123")
                    .method(Connection.Method.POST)
                    .execute();

            // 獲取響應的 HTML
            Document document = response.parse();
            System.out.println("Response: " + document.body().text());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4、使用場景

  • Web 抓?。禾崛【W(wǎng)頁內容,如標題、段落、鏈接等。
  • HTML 清洗:清理和格式化用戶生成的 HTML。
  • 表單提交:模擬用戶登錄或提交數(shù)據(jù)。
  • DOM 操作:解析和修改 HTML 文件。
  • 數(shù)據(jù)提?。簭?HTML 表格中提取結構化數(shù)據(jù)。

5、總結

Jsoup 是處理 HTML 的強大工具,具備快速抓取、解析和操作 HTML 的能力,適合多種應用場景。

常見的優(yōu)點:

  • 使用簡單,學習成本低。
  • 功能強大,支持多種 HTML 操作。
  • 兼容性強,能處理各種 HTML 格式。

常見的缺點:

  • 僅支持單線程操作,抓取效率有限。
  • 對于動態(tài)加載的網(wǎng)頁(如 AJAX),需要結合其他工具使用。

以上就是Java利用Jsoup解析和操作HTML的技術指南的詳細內容,更多關于Java Jsoup解析和操作HTML的資料請關注腳本之家其它相關文章!

相關文章

最新評論

丹棱县| 盖州市| 建阳市| 漠河县| 叙永县| 江门市| 天津市| 卢龙县| 清水县| 南开区| 磐石市| 密山市| 体育| 茌平县| 普陀区| 盘山县| 邹平县| 瑞丽市| 克山县| 黑山县| 枞阳县| 淳化县| 宿迁市| 泸西县| 尚志市| 宜宾县| 大田县| 富宁县| 剑河县| 南部县| 浦县| 新疆| 罗江县| 绥棱县| 库尔勒市| 大宁县| 进贤县| 雷州市| 廊坊市| 诸城市| 凌源市|