So extrahieren Sie Bilder aus HTML

Die Möglichkeit, Bilder aus HTML zu extrahieren, ist für verschiedene Anwendungen wie Web Scraping und Inhaltsanalyse wichtig. Aspose.HTML for .NET ist eine robuste Bibliothek, die diesen Prozess vereinfacht, indem sie Entwicklern eine Reihe von Tools zum nahtlosen Navigieren und Sammeln von Informationen aus HTML-Dokumenten bietet. Lassen Sie uns untersuchen, wie Sie Bilder aus HTML-Dokumenten extrahieren.

Stellen Sie zunächst sicher, dass Aspose.HTML for .NET in Ihrem Projekt installiert ist. Der Installationsprozess dieser Bibliothek ist relativ einfach. Sie können es über die NuGet Package Manager-Konsole mit dem folgenden Befehl installieren:


Installieren Sie Aspose.HTML for .NET

Install-Package Aspose.HTML



Extrahieren Sie Bilder aus HTML mit C#

Mit der Klassenbibliothek Aspose.HTML for .NET können Sie ganz einfach Ihre eigene Anwendung erstellen, da unsere API ein leistungsstarkes Toolset zum Analysieren und Sammeln von Informationen aus HTML-Dokumenten bereitstellt. Wenn Sie HTML-Daten-Scraping-Funktionen in Ihrem Produkt verwenden oder Daten programmgesteuert aus HTML extrahieren möchten, sehen Sie sich das Codebeispiel unten an. Egal, ob Sie Web-Scraper oder Content-Analysatoren erstellen, Aspose.HTML macht die Bildextraktion zu einem intuitiven Prozess. Sie können alle Bilder mit ein paar Zeilen C#-Code aus einem HTML-Dokument herunterladen:


C#-Code zum Extrahieren von Bildern aus 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());
            }
        }
    }



Schritte zum Extrahieren von Bildern aus HTML

  1. Verwenden Sie den Konstruktor HTMLDocument() , um ein HTML-Dokument zu initialisieren.
  2. Verwenden Sie die Methode GetElementsByTagName("img") , um alle <img>-Elemente zu sammeln. Die Methode gibt eine Liste der <img>-Elemente des HTML-Dokuments zurück.
  3. Verwenden Sie die Methode Select(), um eine eindeutige Sammlung relativer Bild-URLs zu erstellen, und die Methode GetAttribute("src") , um das Attribut src jedes <img>-Elements zu extrahieren .
  4. Erstellen Sie absolute Bild-URLs mit der Klasse Url und der Eigenschaft BaseURI der Klasse HTMLDocument.
  5. Erstellen Sie für jede absolute URL eine Anfrage mit dem Konstruktor RequestMessage(url) .
  6. Verwenden Sie die Methode Context.Network.Send(request) des Dokuments, um die Anfrage zu senden. Die Antwort wird auf Erfolg überprüft.
  7. Wenn die Antwort erfolgreich war, verwenden Sie die Methode File.WriteAllBytes(), um jedes Bild in einer lokalen Datei zu speichern.
  8. Im Code-Snippet prüfen wir, ob das Bild im Base64-codierten Format vorliegt, indem wir das Protokoll der URL untersuchen und, falls zutreffend, den Bildnamen und die Erweiterung festlegen.

Aspose.HTML for .NET ist eine erweiterte HTML-Parsing-Bibliothek. Man kann erstellen, bearbeiten, durch Knoten navigieren, Daten extrahieren, HTML-, XHTML-, MD-, EPUB- und MHTML-Dateien zusammenführen und in PDF, DOCX, Bilder und andere gängige Formate konvertieren. Darüber hinaus verarbeitet es auch sofort CSS, HTML Canvas, SVG, XPath und JavaScript, um Manipulationsaufgaben zu erweitern. Weitere Einzelheiten zur Installation der C#-Bibliothek und zu den Systemanforderungen finden Sie in der Aspose.HTML-Dokumentation .