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:
- 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. - 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 eigene Sammlung von relativen Bild-URLs zu erstellen, und die Methode GetAttribute(“src”), um das Attributsrc
jedes Elements<img>
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 geprüft, um sicherzustellen, dass sie erfolgreich war.
- 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:
- 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. - Verwenden Sie die Methode
GetElementsByTagName(“link”), um alle
<link>
-Elemente zu sammeln. - Um Nicht-Icon-Bilder herauszufiltern, verwenden Sie die Methode
Where()
, die die Sammlung auf der Grundlage des Ausdruckslink => link.GetAttribute("rel") == "icon"
filtert. Somit wird die Sammlung “icons” nur “links” mit einemrel
-Attribut mit dem Wert “icon” enthalten. - Verwenden Sie die Methode
Select()
, um eine eindeutige Sammlung von relativen Symbol-URLs zu erstellen, und die Methode GetAttribute(“href”), um das Attributhref
jedes<link>
-Elements zu extrahieren. - Erstellen Sie absolute Symbol-URLs mit der Klasse
Url und der Eigenschaft
BaseURI der Klasse
HTMLDocument
. - Erstellen Sie dann für jede absolute URL eine Anfrage mit Hilfe der Klasse RequestMessage.
- 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.
- 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!