Perché estrarre immagini da HTML? (Vantaggi e casi d’uso)

I file HTML spesso includono diversi tipi di immagini, come: immagini standard con tag <img>, immagini inline in Base64 (data:image/...), immagini definite in CSS (ad esempio, background-image), icone e grafiche SVG, immagini collegate esternamente o, risorse immagine incorporate. Estrarre immagini dai documenti HTML è utile per:

  • Migrazione dei contenuti
  • Estrazione di media da email HTML
  • Web scraping e analisi
  • Preparare set di dati di addestramento per l’apprendimento automatico
  • Convertire HTML in PDF/Word mantenendo i media
  • Archiviare pagine web con asset originali

HTML Processing API

GroupDocs.Parser Cloud SDK for .NET è una robusta API basata su REST in grado di elaborare tutti i formati di file popolari, inclusi i file HTML. Ti consente di manipolare file HTML e puoi usarla per:

  • Parse HTML documents
  • Estrai immagini incorporate e inline
  • Estrai immagini codificate in Base64
  • Rileva riferimenti a immagini esterne
  • Recupera i metadati (dimensione, tipo, percorso)
  • Scarica le immagini estratte localmente
  • Automatizzare i flussi di lavoro di parsing HTML

Formati Immagine Supportati

Requisiti necessari

  • Un account GroupDocs Cloud (Client ID e Client Secret).
  • .NET 6.0+ installato.
  • Visual Studio o IDE compatibile.
  • NuGet pacchetto: GroupDocs.Parser-Cloud

Installa tramite NuGet

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

Estrai Immagini da HTML utilizzando C#

Di seguito è riportato un esempio completo in C# che dimostra l’estrazione di immagini HTML utilizzando l’API Cloud.

Step 1 — Inizializza l’API:

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

Step 2 — Fornire informazioni sul file HTML per l’analisi:

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

Step 3 — Estrarre immagini da HTML (incorporate, inline 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 — Scarica Immagini Estratte (compatibile con 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}");
    }
}
// Per ulteriori esempi, visita 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}");
    }
}

Scarica immagini HTML utilizzando cURL

A parte il frammento di codice C#, possiamo anche utilizzare comandi cURL per scaricare immagini da file HTML.

Passo 1 — Genera il Token di Accesso: Il primo passo in questo approccio è generare un token di accesso JWT basato sulle credenziali del client.

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

Prova l’estrattore di immagini HTML online gratuito

Offriamo un estrattore di immagini HTML online gratuito Online HTML Image Extractor sviluppato sopra l’API Cloud di GroupDocs.Parser. Nessuna installazione o download software richiesto e valuta le capacità dell’API REST all’interno del browser web.

extract html images

Conclusione

In questo articolo, abbiamo appreso il modo più accurato per estrarre immagini da HTML utilizzando .NET REST API. Con questo aiuto di questa API, puoi:

  • Estrai immagini incorporate e inline
  • Parse immagini codificate in Base64
  • Estrai le immagini di sfondo CSS
  • Recupera i metadati per le immagini collegate
  • Scarica tutte le immagini programmaticamente

Pertanto, è la soluzione migliore per automatizzare l’estrazione dei media HTML nelle applicazioni C#.

Articoli correlati

Ti raccomandiamo vivamente di visitare i seguenti articoli per saperne di più su:

Domande Frequenti (FAQ)

  1. Posso estrarre immagini incorporate in Base64 da HTML? Sì, l’API estrae automaticamente immagini HTML in linea e codificate in Base64.

  2. L’API estrae immagini collegate esternamente? L’API estrae i metadati per le immagini collegate; il loro download è facoltativo.

  3. Posso estrarre immagini indicate nel CSS? Sì, le immagini collegate tramite CSS inline o incorporato sono supportate.

  4. Quali formati di immagine sono supportati? JPG, PNG, BMP, GIF, TIFF e altri tipi di immagini comuni.

  5. C’è una prova gratuita? Sì. Puoi creare un account gratuito e ottenere 150 chiamate API gratuite al mese.