Comment extraire des SVG d'un site web
La capacité d’extraire des images à partir de HTML est cruciale pour diverses applications, notamment le web scraping et l’analyse de contenu. Aspose.HTML for Python via .NET est une bibliothèque robuste qui simplifie ce processus en offrant aux développeurs un ensemble d’outils pour naviguer et collecter des informations à partir de documents HTML de manière transparente. Cette solution puissante est idéale pour tous ceux qui ont besoin de collecter des SVG à des fins d’analyse, d’archivage ou de création de contenu – éliminant ainsi la nécessité d’un travail manuel. Voyons comment télécharger des images SVG à partir de pages web.
Extraire des SVG à l'aide de Python
Les images SVG dans les documents HTML se présentent sous deux formes – inline SVG et external SVG. Le code Python suivant montre comment automatiser l’extraction d’images SVG externes, des fichiers SVG stockés séparément du HTML et référencés par des balises <img>
, à partir d’une page web en utilisant la bibliothèque Aspose.HTML for Python via .NET:
Code Python pour télécharger des SVG à partir d'une page web
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())
Etapes pour extraire SVG d'un site web
- Utilisez le constructeur
HTMLDocument(Url)
pour créer une instance de la classe HTMLDocument et transmettez-lui l’URL du site web à partir duquel vous souhaitez extraire des images SVG externes. - Utilisez la méthode
get_elements_by_tag_name("img")
pour collecter tous les éléments<img>
du document HTML. Cette méthode renvoie une liste des éléments d’image intégrés dans la page. - Itérer à travers les éléments
<img>
collectés et utiliser la méthodeget_attribute("src")
pour extraire l’attributsrc
de chaque élément. Stockez ces valeurs dans un ensemble afin d’éliminer les doublons. - Filtrer les URL extraites en vérifiant si elles se terminent par l’extension “.svg” afin d’isoler uniquement les images SVG externes.
- Utilisez la classe
Url
et lebase_uri
du document pour créer des URL absolues d’images SVG. - Créer une instance
RequestMessage
pour chaque URL SVG absolue afin de préparer une requête HTTP pour récupérer l’image. - Envoyez la requête et vérifiez la propriété
is_success
pour vous assurer que la réponse a bien été reçue. - Utilisez
os.path.basename(url.pathname)
pour obtenir le nom du fichier à partir de l’URL SVG, puis enregistrez l’image sur le système de fichiers local en écrivant le contenu binaire dans le répertoire de sortie.
Pour en savoir plus sur la manière d’extraire par programme des SVG inline et externes d’un site web, reportez-vous à l’article de documentation Extraction de SVG d’un site web en Python .
Note: Respectez toujours les lois sur les droits d’auteur. Assurez-vous de disposer des droits, autorisations ou licences appropriés avant d’utiliser les images extraites à des fins commerciales. Nous n’approuvons ni ne soutenons l’utilisation non autorisée de contenus protégés par des droits d’auteur.
Get Started with Python API
If you want to parse, manipulate, and manage HTML documents, install our flexible, high-speed Aspose.HTML for Python via .NET API. pip
is the easiest way to download and install Aspose.HTML for Python via .NET. To do this, run the following command:
pip install aspose-html-net
For more details about Python library installation and system requirements, please refer to Aspose.HTML Documentation.
Autres caractéristiques prises en charge
Utilisez la bibliothèque Aspose.HTML for Python via .NET pour analyser et manipuler des documents HTML. Clair, sûr et simple !