SVG aus einer Website in Python extrahieren

SVG ist ein für das Web entwickeltes Vektorformat, das häufig in HTML-Dokumenten verwendet wird. Sein Hauptvorteil besteht darin, dass es ohne Qualitätsverlust auf jede Größe skaliert werden kann, was es ideal für die Beibehaltung der visuellen Klarheit über verschiedene Bildschirmgrößen hinweg macht. Neben der Skalierbarkeit bietet SVG weitere Vorteile wie Programmierbarkeit, geringe Dateigröße, fortschrittliche Styling-Optionen und Interaktivität, die allesamt die visuelle Attraktivität und Funktionalität von Webseiten verbessern. Für Designer und Entwickler kann das Extrahieren von SVG-Bildern aus einer Website eine Herausforderung sein, vor allem wenn Standardmethoden wie Rechtsklick zum Speichern oder Öffnen des Bildes unwirksam sind.

Mit Aspose.HTML for Python via .NET können Sie SVG-Bilder einfach programmatisch aus einer Website extrahieren. Diese Bibliothek bietet Tools für den Umgang mit Inline-SVGs und externen SVGs und rationalisiert den Prozess des Auffindens und Extrahierens dieser Bilder. Unsere Python-Bibliothek vereinfacht die Beschaffung von SVGs aus Websites und bietet eine effizientere Alternative zu manuellen Extraktionsmethoden.

SVG aus einer Website extrahieren – Inline SVG

Inline SVG-Bilder sind SVG-Elemente <svg>, deren Inhalt das Bild beschreibt. Im Gegensatz zu externen SVG-Bildern, die über URLs verlinkt sind, werden Inline-SVGs direkt in den HTML-Code einer Webseite eingebettet. Diese eingebetteten SVGs werden nicht als separate Dateien gespeichert und bedürfen daher einer besonderen Behandlung für den Zugriff und die Speicherung.

Um Inline-SVG-Bilder von einer Website zu speichern, müssen wir alle <svg>-Elemente im HTML-Dokument finden und ihren Inhalt mit der Eigenschaft outer_html extrahieren. Hier ist eine schrittweise Anleitung zum Herunterladen von SVG-Bildern von einer Website:

  1. Verwenden Sie den Konstruktor HTMLDocument(Url), um eine Instanz der Klasse HTMLDocument zu erzeugen, und übergeben Sie ihm die URL der Website, aus der Sie Inline-SVG-Bilder extrahieren möchten.
  2. Verwenden Sie die Methode get_elements_by_tag_name(“svg”), um alle <svg> Elemente zu sammeln. Diese Methode gibt eine Liste von <svg>-Elementen zurück, die im HTML eingebettet sind.
  3. Iteriert über die Liste der <svg>-Elemente und speichert jedes SVG in das lokale Dateisystem.
  4. Verwenden Sie die Eigenschaft outer_html, um die vollständige HTML-Darstellung des Elements <svg> zu erhalten. Jede <svg> wird mit einem eindeutigen Dateinamen gespeichert, um ein Überschreiben zu vermeiden.

Der folgende Python-Code demonstriert einen einfachen Ansatz zur Extraktion von Inline-SVG-Bildern aus einer Webseite unter Verwendung der Aspose.HTML Python-Bibliothek:

 1import os
 2from aspose.html import *
 3
 4# Prepare the output directory
 5output_dir = "output/svg/"
 6os.makedirs(output_dir, exist_ok=True)
 7
 8# Open a document you want to extract inline SVG images from
 9with HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/") as document:
10    # Collect all inline SVG images
11    images = document.get_elements_by_tag_name("svg")
12
13    for i, image in enumerate(images):
14        # Save every SVG image to a local file system
15        with open(os.path.join(output_dir, f"{i}.svg"), 'w', encoding='utf-8') as file:
16            file.write(image.outer_html)

Hinweis: Einige SVG-Dateien können urheberrechtlich geschützt sein. Prüfen Sie daher die Nutzungsbedingungen, bevor Sie sie extrahieren und verwenden. Wenn Sie zum Beispiel das Firmenlogo oder andere extrahierte SVG-Dateien in Ihren Designprojekten verwenden, kann dies als Plagiat angesehen werden und Sie sollten es nicht tun. Es könnte eine gute Idee sein, die Eigentümer der Website um Erlaubnis zu fragen, bevor Sie ihre Dateien verwenden.

SVG von Website extrahieren – Externes SVG

Externes SVG ist eine SVG-Datei, die außerhalb eines HTML-Dokuments gespeichert ist und in das Dokument geladen wird, z. B. mit einem <img>-Tag. Durch die Trennung von SVG-Dateien und HTML ist es möglich, dasselbe SVG-Bild an mehreren Stellen wiederzuverwenden, ohne den Code zu duplizieren, wodurch Webseiten effizienter und leichter zu pflegen sind.

Externe SVG-Bilder werden durch das <img>-Element dargestellt, das wiederum auch auf andere Bildtypen verweisen kann, so dass SVG-Bilder weiter gefiltert werden sollten. Der folgende Python-Code automatisiert den Prozess der Extraktion von SVG-Bildern aus einer Webseite unter Verwendung der Aspose.HTML Python-Bibliothek. Er beginnt mit der Definition und Erstellung eines Ausgabeverzeichnisses zum Speichern der SVG-Dateien. Dann lädt der Code ein HTML-Dokument von einer angegebenen URL. Er sammelt alle <img>-Elemente aus dem Dokument, ruft ihre src-Attribute ab und filtert URLs heraus, die mit “.svg” enden, um SVG-Bilder zu isolieren. Der Code konvertiert diese relativen URLs in absolute URLs unter Verwendung der Basis-URI des Dokuments. Für jede absolute SVG-URL sendet er eine Netzwerkanfrage, um das SVG-Bild abzurufen. Ist die Anfrage erfolgreich, wird die SVG-Datei unter dem aus dem Pfadnamen der URL abgeleiteten Dateinamen im lokalen Dateisystem gespeichert.

 1import os
 2from aspose.html import *
 3from aspose.html.net import *
 4
 5# Define the output directory
 6output_dir = "output/svg/"
 7os.makedirs(output_dir, exist_ok=True)
 8
 9# Open the document you want to extract external SVGs from
10document = HTMLDocument("https://products.aspose.com/html/net/")
11
12# Collect all image elements
13images = document.get_elements_by_tag_name("img")
14
15# Create a distinct collection of relative image URLs
16urls = set(element.get_attribute("src") for element in images)
17
18# Filter out non-SVG images
19svg_urls = [url for url in urls if url.endswith(".svg")]
20
21# Create absolute SVG image URLs
22abs_urls = [Url(url, document.base_uri) for url in svg_urls]
23
24for url in abs_urls:
25    # Create a request message
26    request = RequestMessage(url)
27
28    # Extract SVG
29    response = document.context.network.send(request)
30
31    # Check whether the response is successful
32    if response.is_success:
33        # Save SVG image to the 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())

Schlussfolgerung

Die Aspose.HTML for Python via .NET-Bibliothek bietet robuste Funktionen für die programmatische Extraktion von SVG-Bildern aus Websites, die sowohl Inline- als auch externe SVGs umfassen. Um Inline-SVG-Bilder zu extrahieren, verwenden Sie den Konstruktor HTMLDocument(Url), um das Dokument zu laden, wenden Sie die Methode get_elements_by_tag_name("svg") an, um alle SVG-Elemente zu sammeln, und verwenden Sie dann die Eigenschaft outer_html, um jedes SVG-Bild lokal zu speichern. Für externe SVGs folgen Sie einem ähnlichen Ansatz, indem Sie <img>-Elemente sammeln, nach SVG-Dateien filtern, absolute URLs konstruieren und die Bilder speichern.

Diese Python-Beispiele zeigen, wie man SVG-Bilder automatisch aus Webseiten extrahieren kann. Dies ist nützlich für die Archivierung oder Analyse von Webinhalten und von Vorteil für Designer und Entwickler, die SVGs von Websites extrahieren möchten, ohne in den Quellcode eindringen zu müssen.

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 Sie externe Software benötigen. Sie unterstützt gängige Dateiformate wie EPUB, MHTML, XML, SVG und Markdown und kann in die Dateiformate PDF, DOCX, XPS und Image gerendert werden.

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”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.