Extraire des images d'un site web en Python
Dans cet article, nous explorons comment extraire différents types d’images à partir de sites web en utilisant la bibliothèque Aspose.HTML for Python via .NET. En tirant parti de la bibliothèque Python, vous pouvez télécharger efficacement des images à partir d’un site web sans avoir à effectuer de recherche manuelle. Découvrez comment automatiser le processus d’extraction d’images et rationaliser votre flux de travail en toute simplicité. Commençons à extraire des images par programme !
Extraire des images d’un site Web
La plupart des images d’un document HTML sont représentées par l’élément <img>
. Voici un exemple d’utilisation de Aspose.HTML for Python via .NET pour trouver les images spécifiées par cet élément. Ainsi, pour télécharger des images à partir d’un site web, vous devez suivre les étapes suivantes :
- Initialiser un objet
HTMLDocument
en utilisant le constructeur HTMLDocument(Url) et fournir l’URL de la page web à partir de laquelle vous voulez extraire les images. - Appelez la méthode
get_elements_by_tag_name(“img”) sur le document pour récupérer tous les éléments
<img>
. Cette méthode renvoie une collection de tous les éléments<img>
trouvés dans le document HTML. - Extraire les URL uniques des images en parcourant les éléments
<img>
collectés et en accédant à leur attributsrc
à l’aide de la méthode get_attribute(“src”). Stockez ces URL dans un ensemble pour vous assurer qu’il n’y a pas de doublons. - Créez des URL d’images absolues en utilisant la classe
Url et la propriété
base_uri de la classe
HTMLDocument
pour vous assurer qu’elles sont correctement formatées pour les requêtes. - Pour chaque URL d’image absolue, créez un objet RequestMessage et utilisez-le pour envoyer une requête réseau afin de récupérer l’image.
- Utilisez la méthode context.network.send(request) du document pour envoyer la demande. La réponse est vérifiée pour s’assurer qu’elle a été envoyée avec succès.
- Analyse l’URL de l’image pour obtenir le nom du fichier, puis enregistre l’image sur votre système de fichiers local en écrivant le contenu de l’image dans un fichier situé dans le répertoire de sortie désigné.
1import os
2from aspose.html import *
3from aspose.html.net import *
4
5# Prepare the output directory
6output_dir = "output/"
7os.makedirs(output_dir, exist_ok=True)
8
9# Open a document you want to extract images from
10with HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/") as document:
11 # Collect all <img> elements
12 images = document.get_elements_by_tag_name("img")
13
14 # Create a distinct collection of relative image URLs
15 urls = set(element.get_attribute("src") for element in images)
16
17 # Create absolute image URLs
18 abs_urls = [Url(url, document.base_uri) for url in urls]
19
20 for url in abs_urls:
21 # Create an image request message
22 request = RequestMessage(url)
23
24 # Extract image
25 response = document.context.network.send(request)
26
27 # Check whether a response is successful
28 if response.is_success:
29 # Parse the URL to get the file name
30 file_name = os.path.basename(url.pathname)
31
32 # Save image to the local file system
33 with open(os.path.join(output_dir, file_name), 'wb') as file:
34 file.write(response.content.read_as_byte_array())
Note: Il est essentiel de respecter les lois sur les droits d’auteur et d’obtenir l’autorisation appropriée avant d’utiliser les images sauvegardées à des fins commerciales. Nous ne sommes pas favorables à l’extraction de données et à l’utilisation de fichiers d’autres personnes à des fins commerciales sans leur autorisation.
Extraire des icônes
Les icônes sont une sorte d’image dans les documents HTML qui sont spécifiés en utilisant des éléments <link>
avec l’attribut rel
fixé à icon
. Voyons comment extraire des icônes d’un site Web en utilisant Aspose.HTML for Python via .NET :
- Utilisez le constructeur
HTMLDocument(Url)
pour créer une instance de la classe HTMLDocument et transmettez-lui l’URL du site web dont vous voulez extraire les icônes. - Utilisez la méthode
get_elements_by_tag_name(“link”) pour collecter tous les éléments
<link>
. - Utilisez la méthode
get_attribute(“rel”) pour récupérer la valeur de l’attribut
rel
d’un élément HTML. Filtrez ces éléments pour ne garder que ceux dont l’attributrel
est égal àicon
, qui sont typiquement utilisés pour définir des icônes. - Extraire l’attribut
href
de chaque lien iconique pour obtenir les URL relatives. Convertir ces URL relatives en URL absolues en utilisant l’URI de base du document. - Pour chaque URL d’image absolue, créez un objet RequestMessage et utilisez-le pour envoyer une requête réseau afin de récupérer l’image.
- Utilisez la méthode context.network.send(request) du document pour envoyer la demande. La réponse est vérifiée pour s’assurer qu’elle a été envoyée avec succès.
- Si la réponse indique un succès, enregistrez le fichier d’icônes localement dans le répertoire de sortie prédéfini.
1import os
2from aspose.html import *
3from aspose.html.net import *
4
5# Define output directory
6output_dir = "output/icons/"
7os.makedirs(output_dir, exist_ok=True)
8
9# Open a document you want to extract icons from
10document = HTMLDocument("https://docs.aspose.com/html/python-net/message-handlers/")
11
12# Collect all <link> elements
13links = document.get_elements_by_tag_name("link")
14
15# Leave only "icon" elements
16icons = [link for link in links if link.get_attribute("rel") == "icon"]
17
18# Create a distinct collection of relative icon URLs
19urls = {icon.get_attribute("href") for icon in icons}
20
21# Create absolute icon URLs
22abs_urls = [Url(url, document.base_uri) for url in urls]
23
24for url in abs_urls:
25 # Create a request message
26 request = RequestMessage(url)
27
28 # Extract icon
29 response = document.context.network.send(request)
30
31 # Check whether the response is successful
32 if response.is_success:
33 # Save icon to a 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())
Vous pouvez utiliser ces exemples Python pour automatiser l’extraction de toutes les images d’un site web. Cela est utile pour diverses tâches telles que l’archivage, la recherche, l’analyse de contenu web ou toute autre application à usage personnel. C’est également très utile pour les concepteurs et les développeurs de sites web qui souhaitent extraire des images de ces sites.
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 les plus courants tels que EPUB, MHTML, XML, SVG et Markdown et peut convertir les documents en 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 !