Extraire des SVG d'un site web en Python

SVG est un format vectoriel conçu pour le web, fréquemment utilisé dans les documents HTML. Son principal avantage est sa capacité à s’adapter à n’importe quelle taille sans perte de qualité, ce qui le rend idéal pour maintenir la clarté visuelle à travers différentes tailles d’affichage. Outre son évolutivité, le SVG offre d’autres avantages tels que la programmabilité, une taille de fichier réduite, des options de style avancées et l’interactivité, qui améliorent tous l’attrait visuel et la fonctionnalité des pages web. Pour les concepteurs et les développeurs, l’extraction d’images SVG d’un site web peut s’avérer difficile, en particulier lorsque les méthodes standard telles que le clic droit pour enregistrer ou ouvrir l’image sont inefficaces.

Avec Aspose.HTML for Python via .NET, vous pouvez facilement extraire par programme des images SVG d’un site web. Cette bibliothèque fournit des outils pour gérer à la fois les SVG en ligne et les SVG externes, rationalisant ainsi le processus de localisation et d’extraction de ces images. Notre bibliothèque Python simplifie l’obtention de SVG à partir de sites web, offrant une alternative plus efficace aux méthodes d’extraction manuelles.

Extraire SVG d’un site web – Inline SVG

Les images SVG en ligne sont des éléments SVG <svg> dont le contenu décrit l’image. Contrairement aux images SVG externes qui sont liées par des URL, les SVG en ligne sont incorporés directement dans le code HTML d’une page web. Ces SVG intégrés ne sont pas stockés en tant que fichiers distincts et nécessitent donc une manipulation spéciale pour être accessibles et sauvegardés.

Pour sauvegarder des images SVG en ligne à partir d’un site web, nous devons trouver tous les éléments <svg> dans le document HTML et extraire leur contenu en utilisant la propriété outer_html. Voici un guide étape par étape pour télécharger des images SVG à partir d’un site web :

  1. Utilisez le constructeur HTMLDocument(Url) pour créer une instance de la classe HTMLDocument et passez-lui l’URL du site web à partir duquel vous voulez extraire des images SVG en ligne.
  2. Utilisez la méthode get_elements_by_tag_name(“svg”) pour collecter tous les éléments <svg>. Cette méthode renvoie une liste d’éléments <svg> intégrés dans le code HTML.
  3. Itère sur la liste des éléments <svg> et enregistre chaque SVG sur le système de fichiers local.
  4. Utilisez la propriété outer_html pour obtenir la représentation HTML complète de l’élément <svg>. Chaque <svg> est sauvegardé avec un nom de fichier unique pour éviter l’écrasement.

Le code Python suivant démontre une approche simple pour extraire des images SVG en ligne d’une page web en utilisant la bibliothèque Aspose.HTML Python :

 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)

Note: Certains fichiers SVG peuvent être protégés par des droits d’auteur, il convient donc de vérifier les conditions d’utilisation avant de les extraire et de les utiliser. Par exemple, l’utilisation du logo de l’entreprise ou d’autres fichiers SVG extraits dans vos projets de conception peut être considérée comme du plagiat, et vous ne devriez pas le faire. Il peut être judicieux de demander l’autorisation aux propriétaires des sites web avant d’utiliser leurs fichiers.

Extraire un SVG d’un site web – External SVG

Un SVG externe est un fichier SVG stocké en dehors d’un document HTML et chargé dans le document à l’aide, par exemple, d’une balise <img>. La séparation des fichiers SVG du HTML permet de réutiliser la même image SVG à plusieurs endroits sans dupliquer le code, ce qui rend les pages web plus efficaces et plus faciles à maintenir.

Les images SVG externes sont représentées par l’élément <img>, qui peut à son tour faire référence à d’autres types d’images, de sorte que les images SVG doivent faire l’objet d’un filtrage supplémentaire. Le code Python suivant automatise le processus d’extraction des images SVG d’une page web à l’aide de la bibliothèque Python Aspose.HTML. Il commence par définir et créer un répertoire de sortie pour stocker les fichiers SVG. Le code charge ensuite un document HTML à partir d’une URL spécifiée. Il collecte tous les éléments <img> du document, récupère leurs attributs src et filtre les URL qui se terminent par “.svg” pour isoler les images SVG. Le code convertit ces URL relatives en URL absolues en utilisant l’URI de base du document. Pour chaque URL SVG absolue, il envoie une requête réseau pour récupérer l’image SVG. Si la requête aboutit, il enregistre le fichier SVG dans le système de fichiers local en utilisant le nom de fichier dérivé du chemin d’accès à l’URL.

 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())

Conclusion

La bibliothèque Aspose.HTML for Python via .NET offre de solides capacités d’extraction programmatique d’images SVG à partir de sites Web, englobant à la fois les SVG en ligne et les SVG externes. Pour extraire des images SVG en ligne, utilisez le constructeur HTMLDocument(Url) pour charger le document, appliquez la méthode get_elements_by_tag_name("svg") pour rassembler tous les éléments SVG, puis utilisez la propriété outer_html pour sauvegarder chaque image SVG localement. Pour les SVG externes, suivez une approche similaire en collectant les éléments <img>, en filtrant les fichiers SVG, en construisant des URL absolues et en sauvegardant les images.

Ces exemples Python montrent comment automatiser l’extraction d’images SVG à partir de pages web. Ceci est utile pour l’archivage ou l’analyse du contenu web et est bénéfique pour les concepteurs et les développeurs qui cherchent à extraire des SVG de sites sans avoir à fouiller dans le code source.

Téléchargez la bibliothèque Aspose.HTML for Python via .NET pour manipuler avec succès, rapidement et facilement vos documents HTML. La bibliothèque Python peut créer, modifier, extraire des données, convertir et rendre des documents HTML sans nécessiter de logiciel externe. Elle prend en charge les formats de fichiers courants tels que EPUB, MHTML, XML, SVG et Markdown et peut rendre les documents aux formats PDF, DOCX, XPS et Image.

Aspose.HTML propose des applications Web HTML, qui sont une collection en ligne de convertisseurs gratuits, de fusionneurs, d’outils SEO, de générateurs de code HTML, d’outils URL, de vérificateurs d’accessibilité Web, et bien plus encore. Les applications fonctionnent sur tout système d’exploitation doté d’un navigateur web et ne nécessitent aucune installation de logiciel supplémentaire. Convertissez, fusionnez, encodez, générez facilement du code HTML, extrayez des données du web ou analysez des pages web pour le référencement, où que vous soyez. Utilisez notre collection d’applications web HTML pour effectuer des tâches quotidiennes et rendre votre flux de travail impeccable !

Texte “Applications Web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.