Bilder von der Website extrahieren – C# Beispiele

Nehmen wir an, Sie sind ein Webentwickler, ein Grafikdesigner, ein Forscher, ein Journalist oder ein Student, kurz gesagt, eine Person, die an ihrem eigenen Projekt arbeitet. In diesem Fall benötigen Sie natürlich Bilder für Ihr Projekt während des Entwicklungsprozesses. Um Bilder manuell von einer Website herunterzuladen, müssen Sie sehr viel Zeit aufwenden. Sie müssen jede Bild-URL kopieren und dann das Bild speichern, aber Sie können Aspose.HTML for .NET library verwenden, um Bilder programmatisch aus einer Website zu extrahieren.

In diesem Artikel sehen wir uns an, wie man von der Website verschiedene Arten von Bildern mit Aspose.HTML for .NET API zu extrahieren. Mit unserer C#-Bibliothek können Sie Bilder von einer Website herunterladen. Es ist besser als zu graben und suchen Sie nach ihnen manuell. Versuchen wir es! Extrahieren Sie Bilder von Webseiten programmatisch!

Bilder von Website extrahieren – C#-Code

Die meisten Bilder in einem HTML-Dokument werden durch das Element <img> dargestellt. Hier ist ein Beispiel für die Verwendung von Aspose.HTML for .NET, um Bilder zu finden, die durch dieses Element angegeben werden. Um also Bilder von einer Website herunterzuladen, sollten Sie die folgenden Schritte ausführen:

  1. Verwenden Sie den Konstruktor HTMLDocument(Url), um eine Instanz der Klasse HTMLDocument zu erstellen, und übergeben Sie ihm die URL der Website, von der Sie Bilder finden möchten.
  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 eigene Sammlung von relativen Bild-URLs zu erstellen, und die Methode GetAttribute(“src”), um das Attribut src jedes Elements <img> 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 geprüft, um sicherzustellen, dass sie erfolgreich war.
  7. Wenn die Antwort erfolgreich war, verwenden Sie schließlich die Methode File.WriteAllBytes(), um jedes Bild in einer lokalen Datei zu speichern.
 1// Extract images from website using C#
 2
 3// Open a document you want to download images from
 4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
 5
 6// Collect all <img> elements
 7HTMLCollection images = document.GetElementsByTagName("img");
 8
 9// Create a distinct collection of relative image URLs
10IEnumerable<string> urls = images.Select(element => element.GetAttribute("src")).Distinct();
11
12// Create absolute image URLs
13IEnumerable<Url> absUrls = urls.Select(src => new Url(src, document.BaseURI));
14
15foreach (Url url in absUrls)
16{
17    // Create an image request message
18    using RequestMessage request = new RequestMessage(url);
19
20    // Extract image
21    using ResponseMessage response = document.Context.Network.Send(request);
22
23    // Check whether a response is successful
24    if (response.IsSuccess)
25    {
26        // Save image to a local file system
27        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
28    }
29}

Hinweis: Es ist wichtig, die Urheberrechtsgesetze zu beachten und eine ordnungsgemäße Genehmigung oder Lizenzierung einzuholen, bevor gespeicherte Bilder für kommerzielle Zwecke verwendet werden. Wir unterstützen keine Datenextraktion und keine Verwendung von Dateien anderer Personen für kommerzielle Zwecke ohne deren Erlaubnis.

Icons extrahieren – C#-Code

Icons sind eine Art von Bildern in HTML-Dokumenten, die durch <link>-Elemente mit dem rel-Attribut auf icon festgelegt werden. Schauen wir uns an, wie man mit der Aspose.HTML for .NET-Bibliothek Icons aus einer Website extrahieren kann:

  1. Verwenden Sie den Konstruktor HTMLDocument(Url), um eine Instanz der Klasse HTMLDocument zu erstellen, und übergeben Sie ihm die URL der Website, aus der Sie Symbole extrahieren möchten.
  2. Verwenden Sie die Methode GetElementsByTagName(“link”), um alle <link>-Elemente zu sammeln.
  3. Um Nicht-Icon-Bilder herauszufiltern, verwenden Sie die Methode Where(), die die Sammlung auf der Grundlage des Ausdrucks link => link.GetAttribute("rel") == "icon" filtert. Somit wird die Sammlung “icons” nur “links” mit einem rel-Attribut mit dem Wert “icon” enthalten.
  4. Verwenden Sie die Methode Select(), um eine eindeutige Sammlung von relativen Symbol-URLs zu erstellen, und die Methode GetAttribute(“href”), um das Attribut href jedes <link>-Elements zu extrahieren.
  5. Erstellen Sie absolute Symbol-URLs mit der Klasse Url und der Eigenschaft BaseURI der Klasse HTMLDocument.
  6. Erstellen Sie dann für jede absolute URL eine Anfrage mit Hilfe der Klasse RequestMessage.
  7. Verwenden Sie die Methode Context.Network.Send(request) des Dokuments, um die Anfrage zu senden. Die Antwort wird geprüft, um sicherzustellen, dass sie erfolgreich war.
  8. Wenn die Antwort erfolgreich war, verwenden Sie die Methode File.WriteAllBytes(), um die Symbole in einer lokalen Datei zu speichern. Als Ergebnis haben Sie eine Sammlung von Symbolen von der Website in Ihrem lokalen Ordner.
 1// Download icons from website using C#
 2
 3// Open a document you want to download icons from
 4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 5
 6// Collect all <link> elements
 7HTMLCollection links = document.GetElementsByTagName("link");
 8
 9// Leave only "icon" elements
10IEnumerable<Element> icons = links.Where(link => link.GetAttribute("rel") == "icon");
11
12// Create a distinct collection of relative icon URLs
13IEnumerable<string> urls = icons.Select(icon => icon.GetAttribute("href")).Distinct();
14
15// Create absolute icon URLs
16IEnumerable<Url> absUrls = urls.Select(src => new Url(src, document.BaseURI));
17
18foreach (Url url in absUrls)
19{
20    // Create a downloading request
21    using RequestMessage request = new RequestMessage(url);
22
23    // Extract icon
24    using ResponseMessage response = document.Context.Network.Send(request);
25
26    // Check whether a response is successful
27    if (response.IsSuccess)
28    {
29        // Save icon to a local file system
30        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
31    }
32}

Mit diesen C#-Beispielen können Sie das Extrahieren aller Bilder aus einer Website automatisieren, was für Aufgaben wie Archivierung, Recherche, Analyse von Webinhalten oder jede andere Anwendung für den persönlichen Gebrauch hilfreich sein kann. Auch für Webdesigner und Entwickler, die Bilder von Websites extrahieren möchten, ohne in den Quellcode eintauchen zu müssen, ist dies eine großartige Lösung.

Sie können die vollständigen C#-Beispiele und Datendateien von GitHub herunterladen.

Aspose.HTML bietet HTML-Webanwendungen, die eine Online-Sammlung von kostenlosen Konvertern, Zusammenführungen, SEO-Tools, HTML-Code-Generatoren, URL-Tools und mehr sind. Die Anwendungen funktionieren auf jedem Betriebssystem mit einem Webbrowser und erfordern keine zusätzliche Softwareinstallation. Konvertieren, fusionieren, kodieren, generieren Sie HTML-Code, extrahieren Sie Daten aus dem Web oder analysieren Sie Webseiten im Hinblick auf SEO, wo immer Sie sind. Nutzen Sie unsere Sammlung von HTML-Webanwendungen, um Ihre täglichen Aufgaben zu erledigen und Ihren Arbeitsablauf nahtlos zu gestalten!

Text “HTML-Webanwendungen”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.