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
- Verwenden Sie den Konstruktor HTMLDocument() , um ein HTML-Dokument zu initialisieren.
- 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. - Verwenden Sie die Methode
Select()
, um eine eindeutige Sammlung relativer Bild-URLs zu erstellen, und die Methode GetAttribute("src"
) , um das Attributsrc
jedes<img>
-Elements zu extrahieren . - Erstellen Sie absolute Bild-URLs mit der Klasse
Url
und der Eigenschaft
BaseURI
der Klasse HTMLDocument. - Erstellen Sie für jede absolute URL eine Anfrage mit dem Konstruktor
RequestMessage(
url
) . - Verwenden Sie die Methode
Context.Network.Send(request)
des Dokuments, um die Anfrage zu senden. Die Antwort wird auf Erfolg überprüft. - Wenn die Antwort erfolgreich war, verwenden Sie die Methode
File.WriteAllBytes()
, um jedes Bild in einer lokalen Datei zu speichern. - 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 .
Weitere unterstützte C#-Bibliotheksfunktionen
Verwenden Sie die Bibliothek Aspose.HTML for .NET, um HTML-basierte Dokumente zu analysieren und zu bearbeiten. Klar, sicher und einfach!