Comment extraire une image du HTML

La possibilité d’extraire des images à partir de HTML est importante pour diverses applications telles que le web scraping et l’analyse de contenu. Aspose.HTML for .NET est une bibliothèque robuste qui simplifie ce processus en offrant aux développeurs un ensemble d’outils pour naviguer et collecter des informations à partir de documents HTML de manière transparente. Voyons comment extraire des images de documents HTML.

Tout d’abord, assurez-vous que Aspose.HTML pour .NET est installé dans votre projet. Le processus d’installation de cette bibliothèque est assez simple. Ouvrez le gestionnaire de packages NuGet, recherchez Aspose.HTML et installez. Vous pouvez également utiliser la commande suivante depuis la console Package Manager :


Installer Aspose.HTML pour .NET

Install-Package Aspose.HTML



Extraire des images du HTML en utilisant C#

À l’aide de la bibliothèque de classes Aspose.HTML for .NET , vous pouvez facilement créer votre propre application, car notre API fournit un ensemble d’outils puissants pour analyser et collecter des informations à partir de documents HTML. Si vous souhaitez utiliser les fonctionnalités de récupération de données HTML dans votre produit ou extraire par programmation des données HTML, consultez l’exemple de code ci-dessous. Que vous créiez des web scrapers ou des analyseurs de contenu, Aspose.HTML fait de l’extraction d’images un processus intuitif. Vous pouvez télécharger toutes les images d’un document HTML avec quelques lignes de code C#:


Code C# pour extraire des images du HTML

using Aspose.Html;
using Aspose.Html.Net;
using System.Linq;
using System.IO;
...

    // Prepare a path to a source HTML file
    string documentPath = Path.Combine(DataDir, "images-from-html.html");

    // Create an instance of an HTML document
    using (var document = new HTMLDocument(documentPath))
    {
        // Collect all <img> elements
        var images = document.GetElementsByTagName("img");

        // Create a distinct collection of relative image URLs
        var urls = images.Select(element => element.GetAttribute("src")).Distinct();

        // Create absolute image URLs
        var absUrls = urls.Select(src => new Url(src, document.BaseURI));

        foreach (var url in absUrls)
        {
            // Create an image request message
            using var request = new RequestMessage(url);

            // Download image
            using var response = document.Context.Network.Send(request);

            var imgName = url.Pathname.Split('/').Last();

            //Check the image in base64 encoding
            if (url.Protocol == "data:" && response.Headers.ContentType.MediaType.Type == "image")
            {
                // Get the image type and set to extension
                imgName = "img1." + response.Headers.ContentType.MediaType.SubType;
            }

            // Check whether a response is successful
            if (response.IsSuccess)
            {
                // Save image to a local file system
                File.WriteAllBytes(Path.Combine(OutputDir, imgName), response.Content.ReadAsByteArray());
            }
        }
    }



Étapes pour extraire des images du HTML

  1. Utilisez le constructeur HTMLDocument() pour initialiser un document HTML.
  2. Utilisez la méthode GetElementsByTagName("img") pour collecter tous les éléments <img>. La méthode renvoie une liste des éléments <img> du document HTML.
  3. Utilisez la méthode Select() pour créer une collection distincte d’URL d’images relatives et la méthode GetAttribute("src") pour extraire l’attribut src de chaque élément <img> .
  4. Créez des URL d’images absolues à l’aide de la classe Url et de la propriété BaseURI de la classe HTMLDocument.
  5. Pour chaque URL absolue, créez une requête à l’aide du constructeur RequestMessage(url) .
  6. Utilisez la méthode Context.Network.Send(request) du document pour envoyer la demande. La réponse est vérifiée pour s’assurer qu’elle a réussi.
  7. Si la réponse a réussi, utilisez la méthode File.WriteAllBytes() pour enregistrer chaque image dans un fichier local.
  8. Dans l’extrait de code, nous vérifions si l’image est au format codé Base64 en examinant le protocole de l’URL et, si c’est vrai, définissons le nom et l’extension de l’image.

Aspose.HTML pour .NET est une bibliothèque d’analyse HTML avancée. On peut créer, modifier, naviguer dans les nœuds, extraire des données, fusionner et convertir des fichiers HTML, XHTML, MD, EPUB et MHTML en PDF, DOCX, images et autres formats populaires. De plus, il gère également CSS, HTML Canvas, SVG, XPath et JavaScript prêts à l’emploi pour étendre les tâches de manipulation. Pour plus de détails sur l’installation de la bibliothèque C# et la configuration système requise, veuillez vous référer à la Documentation Aspose.HTML .

Autres fonctionnalités de la bibliothèque C# prises en charge

Utilisez la bibliothèque Aspose.HTML pour .NET pour analyser et manipuler des documents HTML. Clair, sûr et simple!