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:

  1. 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.
  2. 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.
  3. Extrahieren Sie eindeutige Bild-URLs, indem Sie durch die gesammelten <img>-Elemente iterieren und mit der Methode get_attribute(“src”) auf ihr src-Attribut zugreifen. Speichern Sie diese URLs in einem Set, um sicherzustellen, dass es keine Duplikate gibt.
  4. 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.
  5. Erstellen Sie für jede absolute Bild-URL ein RequestMessage-Objekt und verwenden Sie es, um eine Netzwerkanfrage zum Abrufen des Bildes zu senden.
  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. 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.
 1# Extract images from a website in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare the output directory
 8output_dir = "output"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Load the webpage and collect image URLs
12with ah.HTMLDocument("https://docs.aspose.com/html/net/tutorial/html-colors/") as document:
13    # Collect all <img> elements
14    images = document.get_elements_by_tag_name("img")
15
16    urls = {image.get_attribute("src") for image in images if image.get_attribute("src")}
17
18    # Download each image
19    for image_url in urls:
20        url = ah.Url(image_url, document.base_uri)
21        file_name = os.path.basename(url.pathname)
22
23        if not file_name:
24            continue
25
26        with ahnet.RequestMessage(url) as request:
27            with document.context.network.send(request) as response:
28                if response.is_success:
29                    with open(os.path.join(output_dir, file_name), "wb") as file:
30                        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:

  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 get_elements_by_tag_name(“link”), um alle <link> Elemente zu sammeln.
  3. 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 Attribut rel gleich icon ist, die normalerweise zur Definition von Symbolen verwendet werden.
  4. 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.
  5. Erstellen Sie für jede absolute Bild-URL ein RequestMessage-Objekt und verwenden Sie es, um eine Netzwerkanfrage zum Abrufen des Bildes zu senden.
  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 Erfolg anzeigt, speichern Sie die Symboldatei lokal in dem vordefinierten Ausgabeverzeichnis.
 1# Extract icons from a website in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare the output directory
 8output_dir = os.path.join("output", "icons")
 9os.makedirs(output_dir, exist_ok=True)
10
11# Load the webpage and collect icon URLs
12with ah.HTMLDocument("https://docs.aspose.com/html/python-net/") as document:
13    links = document.get_elements_by_tag_name("link")
14    icon_urls = {
15        link.get_attribute("href")
16        for link in links
17        if "icon" in (link.get_attribute("rel") or "").lower().split()
18        and link.get_attribute("href")
19    }
20
21    # Download each icon
22    for icon_url in icon_urls:
23        url = ah.Url(icon_url, document.base_uri)
24        file_name = os.path.basename(url.pathname)
25
26        if not file_name:
27            continue
28
29        with ahnet.RequestMessage(url) as request:
30            with document.context.network.send(request) as response:
31                if response.is_success:
32                    file_path = os.path.join(output_dir, file_name)
33                    with open(file_path, "wb") as file:
34                        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!

Text “HTML-Webanwendungen”