Por que Extrair Imagens do HTML? (Benefícios e Casos de Uso)

HTML arquivos geralmente incluem vários tipos de imagens, como: imagens padrão com a tag <img>, imagens inline em Base64 (data:image/...), imagens definidas em CSS (por exemplo, background-image), SVG ícones e gráficos, imagens vinculadas externamente ou, recursos de imagem incorporados. Extrair imagens de documentos HTML é útil para:

  • Migração de conteúdo
  • Extraindo mídia de e-mails HTML
  • Raspagem de dados e análise
  • Preparando conjuntos de dados de treinamento para aprendizado de máquina
  • Convertendo HTML em PDF/Word enquanto preserva a mídia
  • Arquivando páginas da web com ativos originais

API de Processamento HTML

GroupDocs.Parser Cloud SDK for .NET é uma API robusta baseada em REST capaz de processar todos os formatos de arquivo populares, incluindo arquivos HTML. Ela permite que você manipule arquivos HTML e você pode usá-la para:

  • Analisar documentos HTML
  • Extrair imagens incorporadas e inline
  • Extrair imagens codificadas em Base64
  • Detectar referências a imagens externas
  • Recuperar metadados (tamanho, tipo, caminho)
  • Baixar imagens extraídas localmente
  • Automatizar fluxos de trabalho de análise HTML

Formatos de Imagem Suportados

Pré-requisitos

  • Uma conta do GroupDocs Cloud (Client ID e Client Secret).
  • .NET 6.0+ instalado.
  • Visual Studio ou IDE compatível.
  • Pacote NuGet: GroupDocs.Parser-Cloud

Instale via NuGet

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

Extrair Imagens do HTML usando C#

Dado abaixo está o exemplo completo em C# demonstrando a extração de imagens HTML usando a API Cloud.

Passo 1 — Inicializar a API:

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

Passo 2 — Fornecer informações do arquivo HTML para análise:

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

Passo 3 — Extrair Imagens do HTML (Incorporadas, Em linha e Base64):

var response = parserApi.Images(request);

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

Passo 4 — Baixar Imagens Extraídas (compatível com macOS e 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}");
    }
}
// Para mais exemplos, visite 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}");
    }
}

Baixar Imagens HTML usando cURL

Além do snippet de código C#, também podemos usar comandos cURL para baixar imagens de arquivos HTML.

Passo 1 — Gerar Token de Acesso: O primeiro passo nesta abordagem é gerar um token de acesso JWT com base nas credenciais do cliente.

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"}"

Experimente o Extrator de Imagens HTML Online Gratuito

Oferecemos um Online HTML Image Extractor gratuito desenvolvido com base na API GroupDocs.Parser Cloud. Nenhuma instalação de software ou download é necessário para avaliar as capacidades da API REST dentro do navegador.

extract html images

Conclusão

Neste artigo, nós aprendemos a forma mais precisa de extrair imagens do HTML usando a API REST .NET. Com a ajuda desta API, você pode:

  • Extrair imagens incorporadas e em linha
  • Analisar imagens codificadas em Base64
  • Extrair imagens de fundo em CSS
  • Recuperar metadados para imagens vinculadas
  • Baixe todas as imagens programaticamente

Portanto, é a melhor solução para automatizar a extração de mídia HTML em aplicações C#.

Artigos Relacionados

Recomendamos fortemente a visita aos seguintes artigos para saber mais sobre:

Perguntas Frequentes (FAQs)

  1. Posso extrair imagens incorporadas em Base64 do HTML? Sim, a API extrai imagens HTML codificadas em Base64 e inline automaticamente.

  2. A API extrai imagens vinculadas externamente? A API extrai metadados para imagens vinculadas; o download delas é opcional.

  3. Posso extrair imagens referenciadas no CSS? Sim, imagens referenciadas através de CSS inline ou embutido são suportadas.

  4. Quais formatos de imagem são suportados? JPG, PNG, BMP, GIF, TIFF e outros tipos de imagem comuns.

  5. Existe um período de teste gratuito? Sim. Você pode criar uma conta gratuita e obter 150 chamadas de API mensais gratuitas.