Bilder von einer Website in Python herunterladen
In diesem Artikel wird untersucht, wie man mit Aspose.HTML for Python via .NET verschiedene Arten von Bildern aus Websites extrahieren kann. Durch den Einsatz der Python-Bibliothek können Sie Bilder effizient von einer Website herunterladen, ohne sie manuell suchen zu müssen. Entdecken Sie, wie Sie den Prozess der Bildextraktion automatisieren und Ihren Arbeitsablauf optimieren können. Beginnen wir mit der programmgesteuerten Extraktion von Bildern!
Bilder von der Website extrahieren
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 Python via .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:
- Initialisieren Sie ein “HTMLDocument”-Objekt mit dem HTMLDocument(Url) Konstruktor und geben Sie die URL der Webseite an, aus der Sie Bilder extrahieren möchten.
- Rufen Sie die Methode
get_elements_by_tag_name(“img”) im Dokument auf, um alle
<img>
-Elemente abzurufen. Diese Methode gibt eine Sammlung aller im HTML-Dokument gefundenen<img>
-Elemente zurück. - Extrahieren Sie eindeutige Bild-URLs, indem Sie durch die gesammelten
<img>
-Elemente iterieren und mit der Methode get_attribute(“src”) auf ihrsrc
-Attribut zugreifen. Speichern Sie diese URLs in einem Set, um sicherzustellen, dass es keine Duplikate gibt. - Erstellen Sie absolute Bild-URLs mit der Klasse
Url und der Eigenschaft
base_uri der Klasse
HTMLDocument
, um sicherzustellen, dass sie für Anfragen korrekt formatiert sind. - Erstellen Sie für jede absolute Bild-URL ein RequestMessage-Objekt und verwenden Sie es, um eine Netzwerkanfrage zum Abrufen des Bildes zu senden.
- 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.
- Parsen Sie die Bild-URL, um den Dateinamen zu erhalten, und speichern Sie das Bild in Ihrem lokalen Dateisystem, indem Sie den Bildinhalt in eine Datei im angegebenen Ausgabeverzeichnis schreiben.
1import os
2from aspose.html import *
3from aspose.html.net import *
4
5# Prepare the output directory
6output_dir = "output/"
7os.makedirs(output_dir, exist_ok=True)
8
9# Open a document you want to extract images from
10with HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/") as document:
11 # Collect all <img> elements
12 images = document.get_elements_by_tag_name("img")
13
14 # Create a distinct collection of relative image URLs
15 urls = set(element.get_attribute("src") for element in images)
16
17 # Create absolute image URLs
18 abs_urls = [Url(url, document.base_uri) for url in urls]
19
20 for url in abs_urls:
21 # Create an image request message
22 request = RequestMessage(url)
23
24 # Extract image
25 response = document.context.network.send(request)
26
27 # Check whether a response is successful
28 if response.is_success:
29 # Parse the URL to get the file name
30 file_name = os.path.basename(url.pathname)
31
32 # Save image to the local file system
33 with open(os.path.join(output_dir, file_name), 'wb') as file:
34 file.write(response.content.read_as_byte_array())
Hinweis: Bevor Sie gespeicherte Bilder für kommerzielle Zwecke verwenden, müssen Sie unbedingt die Urheberrechtsgesetze beachten und eine entsprechende Genehmigung einholen. Wir unterstützen keine Datenextraktion und keine Verwendung von Dateien anderer Personen für kommerzielle Zwecke ohne deren Zustimmung.
Icons extrahieren
Icons sind eine Art von Bildern in HTML-Dokumenten, die mit <link>
-Elementen mit dem rel
-Attribut auf icon
gesetzt werden. Schauen wir uns an, wie man mit Aspose.HTML for Python via .NET Icons aus Webseiten extrahiert:
- 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
get_elements_by_tag_name(“link”), um alle
<link>
Elemente zu sammeln. - Verwenden Sie die Methode
get_attribute(“rel”), um den Wert des Attributs
rel
aus einem HTML-Element abzurufen. Filtern Sie diese Elemente, um nur diejenigen zu erhalten, bei denen das Attributrel
gleichicon
ist, die normalerweise zur Definition von Symbolen verwendet werden. - Extrahieren Sie das Attribut
href
aus jedem Icon-Link, um die relativen URLs zu erhalten. Konvertieren Sie diese relativen URLs in absolute URLs, indem Sie den Basis-URI des Dokuments verwenden. - Erstellen Sie für jede absolute Bild-URL ein RequestMessage-Objekt und verwenden Sie es, um eine Netzwerkanfrage zum Abrufen des Bildes zu senden.
- 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 Erfolg anzeigt, speichern Sie die Symboldatei lokal in dem vordefinierten Ausgabeverzeichnis.
1import os
2from aspose.html import *
3from aspose.html.net import *
4
5# Define output directory
6output_dir = "output/icons/"
7os.makedirs(output_dir, exist_ok=True)
8
9# Open a document you want to extract icons from
10document = HTMLDocument("https://docs.aspose.com/html/python-net/message-handlers/")
11
12# Collect all <link> elements
13links = document.get_elements_by_tag_name("link")
14
15# Leave only "icon" elements
16icons = [link for link in links if link.get_attribute("rel") == "icon"]
17
18# Create a distinct collection of relative icon URLs
19urls = {icon.get_attribute("href") for icon in icons}
20
21# Create absolute icon URLs
22abs_urls = [Url(url, document.base_uri) for url in urls]
23
24for url in abs_urls:
25 # Create a request message
26 request = RequestMessage(url)
27
28 # Extract icon
29 response = document.context.network.send(request)
30
31 # Check whether the response is successful
32 if response.is_success:
33 # Save icon to a local file system
34 file_path = os.path.join(output_dir, os.path.basename(url.pathname))
35 with open(file_path, 'wb') as file:
36 file.write(response.content.read_as_byte_array())
Sie können diese Python-Beispiele verwenden, um die Extraktion aller Bilder aus einer Website zu automatisieren. Dies ist wertvoll für verschiedene Aufgaben wie Archivierung, Recherche, Analyse von Webinhalten oder jede andere persönliche Anwendung. Es eignet sich auch hervorragend für Webdesigner und Entwickler, die Bilder von Websites abrufen möchten.
Laden Sie die Bibliothek Aspose.HTML for Python via .NET herunter, um Ihre HTML-Dokumente erfolgreich, schnell und einfach zu bearbeiten. Die Python-Bibliothek kann HTML-Dokumente erstellen, ändern, Daten extrahieren, konvertieren und rendern, ohne dass externe Software erforderlich ist. Sie unterstützt gängige Dateiformate wie EPUB, MHTML, XML, SVG und Markdown und kann in die Dateiformate PDF, DOCX, XPS und Image rendern.
Aspose.HTML bietet HTML-Webanwendungen, eine Online-Sammlung von kostenlosen Konvertern, Zusammenführungen, SEO-Tools, HTML-Code-Generatoren, URL-Tools, Web-Zugänglichkeitsprüfungen und mehr. Die Anwendungen funktionieren auf allen Betriebssystemen mit einem Webbrowser und erfordern keine zusätzliche Softwareinstallation. Konvertieren, verschmelzen, kodieren, generieren Sie HTML-Code, extrahieren Sie Daten aus dem Web oder analysieren Sie Webseiten für SEO, wo immer Sie sind. Nutzen Sie unsere Sammlung von HTML-Webanwendungen, um alltägliche Aufgaben zu erledigen und Ihre Arbeitsabläufe fehlerfrei zu gestalten!