为什么从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 解析工作流程
支持的图像格式
先决条件
- 一个 GroupDocs Cloud 账户(客户端 ID 和客户端密钥)。
- .NET 6.0+ 已安装。
- 视觉 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 的功能。

结论
在本文中,我们已经学习了使用 .NET REST API 从 HTML 中提取图像的最准确方法。使用此 API,您可以:
- 提取嵌入式和内联图像
- 解析 Base64 编码的图像
- 提取 CSS 背景图像
- 检索链接图像的元数据
- 通过编程方式下载所有图像
因此,这是在 C# 应用程序中自动化 HTML 媒体提取的最佳解决方案。
相关文章
我们强烈推荐访问以下文章以了解更多信息:
常见问题解答 (FAQs)
我可以从 HTML 中提取嵌入的 Base64 图像吗? 是的,API 会自动提取 Base64 编码和内联 HTML 图像。
API 是否提取外部链接的图像? API 提取链接图像的元数据;下载它们是可选的。
我可以提取在 CSS 中引用的图像吗? 是的,内联或嵌入 CSS 引用的图像是支持的。
支持哪些图像格式? JPG、PNG、BMP、GIF、TIFF 和其他常见图像类型。
是否有免费试用? 是的。您可以创建一个免费帐户并获得每月 150 次免费的 API 调用。
