Wie extrahiere ich SVG von einer Website?

Die Fähigkeit, Bilder aus HTML zu extrahieren, ist für verschiedene Anwendungen wie Web Scraping und Inhaltsanalyse von entscheidender Bedeutung. Aspose.HTML for Python via .NET ist eine robuste Bibliothek, die diesen Prozess vereinfacht, indem sie Entwicklern eine Reihe von Werkzeugen zum nahtlosen Navigieren und Sammeln von Informationen aus HTML-Dokumenten bietet. Diese leistungsstarke Lösung ist ideal für alle, die SVGs für die Analyse, Archivierung oder Inhaltserstellung sammeln müssen – so entfällt die Notwendigkeit manueller Arbeit. Sehen wir uns an, wie man SVG-Bilder von Webseiten herunterlädt.


SVG mit Python extrahieren

SVG-Bilder in HTML-Dokumenten gibt es in zwei Formen – inline SVG und externes SVG. Der folgende Python-Code demonstriert, wie die Extraktion von externen SVG-Bildern, d.h. von SVG-Dateien, die getrennt von HTML gespeichert sind und auf die mit <img>-Tags verwiesen wird, aus einer Webseite unter Verwendung der Aspose.HTML for Python via .NET-Bibliothek automatisiert werden kann:


Python-Code zum Herunterladen von SVGs von einer Webseite

import os
import aspose.html as ah
import aspose.html.net as ahnet

# Define the output directory
output_dir = "output/svg/"
os.makedirs(output_dir, exist_ok=True)

# Open the document you want to extract external SVGs from
document = ah.HTMLDocument("https://products.aspose.com/html/python-net/")

# Collect all <img> elements
images = document.get_elements_by_tag_name("img")

# Create a distinct collection of relative image URLs
urls = set(img.get_attribute("src") for img in images)

# Filter only SVG images
svg_urls = [url for url in urls if url.endswith(".svg")]

# Convert relative URLs to absolute using Url from aspose.html
abs_urls = [ah.Url(url, document.base_uri) for url in svg_urls]

for url in abs_urls:
    # Create a network request for the SVG
    request = ahnet.RequestMessage(url.href)

    # Send request to fetch the SVG
    response = document.context.network.send(request)

    # Check if request succeeded
    if response.is_success:
        # Determine local file path
        file_path = os.path.join(output_dir, os.path.basename(url.pathname))

        # Save SVG to a local file system
        with open(file_path, "wb") as f:
            f.write(response.content.read_as_byte_array())


Schritte zum Extrahieren von SVG aus einer Website

  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 externe SVG-Bilder extrahieren möchten.
  2. Verwenden Sie die Methode get_elements_by_tag_name("img"), um alle <img>-Elemente aus dem HTML-Dokument zu sammeln. Diese Methode gibt eine Liste der in der Seite eingebetteten Bildelemente zurück.
  3. Iterieren Sie durch die gesammelten <img>-Elemente und verwenden Sie die Methode get_attribute("src"), um das src-Attribut aus jedem Element zu extrahieren. Speichern Sie diese Werte in einer Menge, um Duplikate zu vermeiden.
  4. Filtern Sie die extrahierten URLs, indem Sie prüfen, ob sie mit der Erweiterung “.svg” enden, um nur die externen SVG-Bilder zu isolieren.
  5. Verwenden Sie die Klasse Url und die base_uri des Dokuments, um absolute SVG-Bild-URLs zu erstellen.
  6. Erstellen Sie eine RequestMessage-Instanz für jede absolute SVG-URL, um eine HTTP-Anfrage zum Abrufen des Bildes vorzubereiten.
  7. Senden Sie die Anfrage und prüfen Sie die Eigenschaft “is_success”, um sicherzustellen, dass die Antwort erfolgreich war.
  8. Verwenden Sie os.path.basename(url.pathname), um den Dateinamen aus der SVG-URL zu ermitteln, und speichern Sie dann das Bild im lokalen Dateisystem, indem Sie den binären Inhalt in das Ausgabeverzeichnis schreiben.

Weitere Informationen zur programmatischen Extraktion von Inline- und externen SVGs aus einer Website finden Sie im Dokumentationsartikel Extracting SVG from a Website in Python .

Hinweis: Beachten Sie stets die Urheberrechtsgesetze. Vergewissern Sie sich, dass Sie die entsprechenden Rechte, Genehmigungen oder Lizenzen haben, bevor Sie die extrahierten Bilder für kommerzielle Zwecke verwenden. Wir befürworten oder unterstützen nicht die unerlaubte Nutzung von urheberrechtlich geschützten Inhalten.



Erste Schritte mit der Python-API

Wenn Sie HTML-Dokumente analysieren, bearbeiten und verwalten möchten, installieren Sie unser flexibles, schnelles Aspose.HTML for Python via .NET-API. „pip“ ist der einfachste Weg, Aspose.HTML for Python via .NET herunterzuladen und zu installieren. Führen Sie dazu den folgenden Befehl aus:

pip install aspose-html-net

Weitere Einzelheiten zur Installation der Python-Bibliothek und zu den Systemanforderungen finden Sie in der Apose.HTML-Dokumentation.

Andere unterstützte Funktionen

Verwenden Sie die Aspose.HTML for Python via .NET-Bibliothek, um HTML-basierte Dokumente zu parsen und zu bearbeiten. Klar, sicher und einfach!