Bilder aus einer Website extrahieren – Java-Beispiele
Wenn Sie Webentwickler, Grafikdesigner, Forscher, Journalist, Student oder einfach nur an einem persönlichen Projekt arbeiten, benötigen Sie wahrscheinlich Bilder und die Möglichkeit, diese von Websites zu sammeln. Das manuelle Speichern von Bildern – das Kopieren jeder URL und das Herunterladen einer nach der anderen – kann zeitaufwändig und ineffizient sein. Mit der Aspose.HTML for Java Bibliothek können Sie diesen Prozess jedoch automatisieren und Bilder programmgesteuert aus einer Website extrahieren.
In diesem Artikel wird untersucht, wie man verschiedene Arten von Bildern aus einer Website programmatisch mit Java extrahieren kann. Mit Aspose.HTML for Java können Sie ganz einfach ein Tool erstellen, das eine HTML-Seite analysiert, Bildquellen identifiziert und diese Bilder herunterlädt. Es ist eine leistungsstarke Lösung für jeden, der Bilder für die Analyse, Archivierung oder die Erstellung von Inhalten sammeln muss – ohne die Mühe, dies manuell zu tun.
Bilder von einer Website extrahieren
Die meisten Bilder in einem HTML-Dokument werden durch das Element <img>
dargestellt. Das folgende Code-Snippet zeigt, wie man Aspose.HTML for Java verwendet, um Bilder zu finden, die durch dieses Element angegeben werden. Um also Bilder von einer Website herunterzuladen, sollten Sie einige der folgenden Schritte ausführen:
- Verwenden Sie den
HTMLDocument(Url)-Konstruktor, um eine Instanz von
HTMLDocument
zu erstellen und übergeben Sie die URL der Webseite, die Sie verarbeiten wollen. - Rufen Sie die Methode
getElementsByTagName(“img”) auf, um alle
<img>
Elemente aus dem Dokument zu erhalten. Die Methode gibt eine Sammlung von<img>
-Elementen zurück, die auf der Seite vorhanden sind. - Iterieren Sie durch die
<img>
Elemente und verwenden Sie die getAttribute(“src”) Methode, um den Wert dessrc
Attributs jedes Bildes zu erhalten. Jedessrc
wird zu demurls
Satz hinzugefügt. - Verwenden Sie die Klasse
Url zusammen mit der Eigenschaft
BaseURI
des Dokuments, um relative Bildpfade in absolute URLs umzuwandeln. - Erstellen Sie für jede absolute Bild-URL eine Anfrage mit dem
RequestMessage(url) Konstruktor und senden Sie sie mit
document.getContext().getNetwork().send(request)
. Dies gibt eineResponseMessage
zurück. - Wenn die Antwort Erfolg anzeigt, extrahieren Sie die Bilddaten mit
response.getContent().readAsByteArray()
und speichern Sie sie in Ihrem lokalen Dateisystem mitFileHelper.writeAllBytes()
.
1// Open a document you want to download images from
2final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
3
4// Collect all <img> elements
5HTMLCollection images = document.getElementsByTagName("img");
6
7// Create a distinct collection of relative image URLs
8Iterator<Element> iterator = images.iterator();
9java.util.Set<String> urls = new HashSet<>();
10for (Element e : images) {
11 urls.add(e.getAttribute("src"));
12}
13
14// Create absolute image URLs
15java.util.List<Url> absUrls = urls.stream()
16 .map(src -> new Url(src, document.getBaseURI()))
17 .collect(Collectors.toList());
18
19// foreach to while statements conversion
20for (Url url : absUrls) {
21 // Create an image request message
22 final RequestMessage request = new RequestMessage(url);
23
24 // Extract image
25 final ResponseMessage response = document.getContext().getNetwork().send(request);
26
27 // Check whether a response is successful
28 if (response.isSuccess()) {
29 String[] split = url.getPathname().split("/");
30 String path = split[split.length - 1];
31
32 // Save file to a local file system
33 FileHelper.writeAllBytes(path, response.getContent().readAsByteArray());
34 }
35}
Mit dieser einfachen und effektiven Lösung können Sie den Bildextraktionsprozess automatisieren und so wertvolle Zeit sparen.
Hinweis: Beachten Sie stets die Urheberrechtsgesetze und vergewissern Sie sich, dass Sie über die erforderlichen Genehmigungen oder Lizenzen verfügen, bevor Sie gespeicherte Bilder für kommerzielle Zwecke verwenden. Wir unterstützen nicht die Extraktion und Verwendung von Inhalten aus Drittquellen zu kommerziellen Zwecken ohne entsprechende Genehmigung.
Icons von der Website extrahieren
Icons in HTML-Dokumenten werden typischerweise durch <link>
-Elemente mit dem Attribut rel="icon"
definiert. Um Icons aus einer Website mit Aspose.HTML for Java zu extrahieren, folgen Sie diesen Schritten:
- Laden Sie die Webseite mit dem Konstruktor HTMLDocument(Url) und geben Sie die URL der zu analysierenden Website ein.
- Verwenden Sie die
getElementsByTagName(“link”) Methode, um alle
<link>
Elemente aus dem Dokument zu sammeln. - Filtern Sie die Ergebnisse, um nur Elemente einzuschließen, bei denen das Attribut
rel
auf"icon"
gesetzt ist, da diese Icon-Links definieren. - Extrahieren der relativen URLs durch Aufruf von
getAttribute(“href”) für jedes gefilterte
<link>
Element. - Erstellen absoluter Icon-URLs unter Verwendung der Klasse
Url und der Methode
getBaseURI()
vonHTMLDocument
. - Senden Sie eine Anfrage für jedes Symbol unter Verwendung der Klasse
RequestMessage und der Methode
document.getContext().getNetwork().send()
. - Prüfen Sie die Antwort und speichern Sie bei Erfolg das Symbol lokal mit
FileHelper.writeAllBytes()
. Als Ergebnis werden alle Website-Symbole, auf die in der HTML-Seite verwiesen wird, heruntergeladen und in Ihrem lokalen Dateisystem gespeichert.
1// Open a document you want to download icons from
2final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
3
4// Collect all <link> elements
5HTMLCollection links = document.getElementsByTagName("link");
6
7// Leave only "icon" elements
8java.util.Set<Element> icons = new HashSet<>();
9for (Element link : links) {
10 if ("icon".equals(link.getAttribute("rel"))) {
11 icons.add(link);
12 }
13}
14
15// Create a distinct collection of relative icon URLs
16java.util.Set<String> urls = new HashSet<>();
17for (Element icon : icons) {
18 urls.add(icon.getAttribute("href"));
19}
20
21// Create absolute image URLs
22java.util.List<Url> absUrls = urls.stream()
23 .map(src -> new Url(src, document.getBaseURI()))
24 .collect(Collectors.toList());
25
26// foreach to while statements conversion
27for (Url url : absUrls) {
28 // Create a downloading request
29 final RequestMessage request = new RequestMessage(url);
30
31 // Extract icon
32 final ResponseMessage response = document.getContext().getNetwork().send(request);
33
34 // Check whether a response is successful
35 if (response.isSuccess()) {
36 String[] split = url.getPathname().split("/");
37 String path = split[split.length - 1];
38
39 // Save file to a local file system
40 FileHelper.writeAllBytes(path, response.getContent().readAsByteArray());
41 }
42}
Sie können diese Java-Beispiele verwenden, um die Extraktion aller Bilder aus einer Website zu automatisieren, was für Aufgaben wie Archivierung, Recherche, Analyse von Webinhalten oder andere Anwendungen 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 tolle Sache.
Aspose.HTML bietet eine Reihe kostenloser Online- HTML-Webanwendungen, darunter Konverter, Zusammenführungen, SEO-Tools, HTML-Code-Generatoren, URL-Utilities und mehr. Diese browserbasierten Tools funktionieren auf allen Betriebssystemen und erfordern keine zusätzliche Softwareinstallation. Ganz gleich, ob Sie Dateien konvertieren oder zusammenführen, Webdaten extrahieren, HTML-Code generieren oder Seiten für die Suchmaschinenoptimierung analysieren müssen, Sie können alles direkt im Web erledigen. Rationalisieren Sie Ihre täglichen Aufgaben und steigern Sie Ihre Produktivität mit unseren benutzerfreundlichen HTML Web Apps – jederzeit und überall.