為什麼要從 HTML 中提取圖像?(好處與用例)

HTML 檔案經常包含幾種圖像類型,例如:標準 <img> 標籤圖像、Base64 內嵌圖像 (data:image/...)、在 CSS 中定義的圖像(例如,background-image)、SVG 圖示和圖形、外部鏈接的圖像或嵌入的圖像資源。從 HTML 文檔中提取圖像對於以下用途是有幫助的:

  • 內容遷移
  • 從 HTML 電子郵件中提取媒體
  • 網頁爬蟲與分析
  • 準備機器學習的訓練數據集
  • 將 HTML 轉換為 PDF/Word 同時保留媒體
  • 存檔網頁及原始資產

HTML 處理 API

GroupDocs.Parser Cloud SDK for .NET 是一個強大的基於 REST 的 API,能夠處理所有熱門文件格式,包括 HTML 文件。它使您可以操作 HTML 文件,您可以用它來:

  • 解析 HTML 文件
  • 提取嵌入式和行内圖像
  • 提取 Base64 編碼的圖像
  • 檢測外部圖像引用
  • 檢索元數據(大小、類型、路徑)
  • 下載本地提取的圖像
  • 自動化 HTML 解析工作流程

支援的影像格式

先決條件

  • A GroupDocs Cloud account (Client ID & Client Secret).
  • .NET 6.0+ 已安裝。
  • Visual Studio 或相容的 IDE。
  • NuGet 套件: GroupDocs.Parser-Cloud

透過 NuGet 安裝

dotnet add package GroupDocs.Parser-Cloud --version 25.7.0

從 HTML 擷取圖片使用 C#

以下是完整的 C# 示例,演示如何使用 Cloud API 進行 HTML 圖像提取。

步驟 1 — 初始化 API:

var config = new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
var parserApi = new ParserApi(config);
var fileApi = new FileApi(config);

步驟 2 — 提供用於解析的 HTML 文件資訊:

var fileInfo = new FileInfo { FilePath = "input.html" };
var options = new ImagesOptions { FileInfo = fileInfo };
var request = new ImagesRequest(options);

步驟 3 — 從 HTML 中提取圖片(嵌入式、內聯及 Base64):

var response = parserApi.Images(request);

foreach (var image in response.Images)
{
    Console.WriteLine($"Source: {image.Path}, Type: {image.MediaType}, Size: {image.Size}");
}

步驟 4 — 下載提取的圖片(適用於 macOS 和 Windows):

var outputDirectory = "/Users/nayyer/Downloads/html-images";
Directory.CreateDirectory(outputDirectory);

foreach (var img in response.Images)
{
    var cloudImagePath = img.Path.Replace("\\", "/");

    var downloadRequest = new DownloadFileRequest(path: cloudImagePath);
    using (var stream = fileApi.DownloadFile(downloadRequest))
    {
        var localPath = Path.Combine(outputDirectory, Path.GetFileName(cloudImagePath));

        using (var fileStream = File.Create(localPath))
        {
            stream.CopyTo(fileStream);
        }

        Console.WriteLine($"Downloaded: {localPath}");
    }
}
// 如需更多示例,請訪問 https://github.com/groupdocs-parser-cloud/groupdocs-parser-cloud-dotnet

var configuration = new Configuration("XXXXXXX-XXXXXXX-XXXXXX-XXXXXX", "XXXXXXXXXXXX");
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

var parserApi = new ParserApi(config);
var fileApi = new FileApi(config);

var fileInfo = new FileInfo { FilePath = "input.html" };
var options = new ImagesOptions { FileInfo = fileInfo };
var request = new ImagesRequest(options);

var response = parserApi.Images(request);

foreach (var image in response.Images)
{
    Console.WriteLine($"Source: {image.Path}, Type: {image.MediaType}, Size: {image.Size}");
}

var outputDirectory = "/Users/nayyer/Downloads/html-images";
Directory.CreateDirectory(outputDirectory);

foreach (var img in response.Images)
{
    var cloudImagePath = img.Path.Replace("\\", "/");

    var downloadRequest = new DownloadFileRequest(path: cloudImagePath);
    using (var stream = fileApi.DownloadFile(downloadRequest))
    {
        var localPath = Path.Combine(outputDirectory, Path.GetFileName(cloudImagePath));

        using (var fileStream = File.Create(localPath))
        {
            stream.CopyTo(fileStream);
        }

        Console.WriteLine($"Downloaded: {localPath}");
    }
}

使用 cURL 下載 HTML 圖片

除了 C# 代碼片段,我們還可以使用 cURL 命令從 HTML 文件中下載圖像。

步驟 1 — 生成訪問令牌: 這種方法的第一步是根據客戶端憑據生成 JWT 訪問令牌。

curl -v -X POST "https://api.groupdocs.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET" \
-H "Content-Type: application/x-www-form-urlencoded"

*Step 2 — Extract Images:

curl -v -X POST "https://api.groupdocs.cloud/v1.0/parser/images" \
-H  "accept: application/json" \
-H  "authorization: Bearer {ACCESS_TOKEN}" \
-H  "Content-Type: application/json" \
-d "{ "FileInfo": { "FilePath": "inbox/input.html", "StorageName": "internal" }, "OutputPath": "extracted-images"}"

嘗試免費的線上 HTML 圖片提取器

我們提供一個免費的在線 Online HTML Image Extractor,基於 GroupDocs.Parser Cloud API 開發。不需要安裝或下載任何軟體,並在網頁瀏覽器內評估 REST API 的功能。

extract html images

結論

在這篇文章中,我們已經學習了使用 .NET REST API 從 HTML 中提取圖像的最準確方法。藉助這個 API,您可以:

  • 提取嵌入式和內聯圖像
  • 解析 Base64 編碼的圖片
  • 提取 CSS 背景圖像
  • 檢索鏈接圖像的元數據
  • 下載所有圖像的程式化方法

因此,這是用於自動化 C# 應用程序中 HTML 媒體提取的最佳解決方案。

相關文章

我們強烈建議參閱以下文章以了解更多資訊:

常見問題 (FAQs)

  1. 我可以從 HTML 中提取嵌入的 Base64 圖像嗎? 是的,API 會自動提取 Base64 編碼和內聯 HTML 圖像。

  2. API 是否提取外部鏈接的圖片? 此 API 擷取連結圖像的元資料;下載它們是可選的。

  3. 我可以提取在 CSS 中引用的圖像嗎? 是的,通過內嵌或嵌入的 CSS 引用的圖片是受支持的。

  4. 支援哪些圖像格式? JPG、PNG、BMP、GIF、TIFF 及其他常見的影像類型。

  5. 是否有免費試用? 是的。您可以創建一個免費帳戶並獲得每月 150 次免費 API 調用。