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
HTMLDocumenten 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
HTMLDocumentpour 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é.
1# Extract images from website using Python
2
3import os
4import aspose.html as ah
5import aspose.html.net as ahnet
6
7# Prepare output directory
8output_dir = "output/"
9os.makedirs(output_dir, exist_ok=True)
10
11# Open HTML document from URL
12with ah.HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-color/") as doc:
13 # Collect all <img> elements
14 images = doc.get_elements_by_tag_name("img")
15
16 # Get distinct relative image URLs
17 urls = set(img.get_attribute("src") for img in images)
18
19 # Create absolute image URLs
20 abs_urls = [ah.Url(url, doc.base_uri) for url in urls]
21
22 for url in abs_urls:
23 # Create a network request
24 request = ahnet.RequestMessage(url)
25
26 # Send request
27 response = doc.context.network.send(request)
28
29 # Check if successful
30 if response.is_success:
31 # Extract file name
32 file_name = os.path.basename(url.pathname)
33
34 # Save image locally
35 with open(os.path.join(output_dir, file_name), "wb") as f:
36 f.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
reld’un élément HTML. Filtrez ces éléments pour ne garder que ceux dont l’attributrelest égal àicon, qui sont typiquement utilisés pour définir des icônes. - Extraire l’attribut
hrefde 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.
1# Extract icons from website using Python
2
3import os
4import aspose.html as ah
5import aspose.html.net as ahnet
6
7# Define output directory
8output_dir = "output/icons/"
9os.makedirs(output_dir, exist_ok=True)
10
11# Open a document you want to extract icons from
12document = ah.HTMLDocument("https://docs.aspose.com/html/python-net/")
13
14# Collect all <link> elements
15links = document.get_elements_by_tag_name("link")
16
17# Leave only "icon" elements
18icons = [link for link in links if link.get_attribute("rel") == "icon"]
19
20# Create a distinct collection of relative icon URLs
21urls = {icon.get_attribute("href") for icon in icons}
22
23# Create absolute icon URLs
24abs_urls = [ah.Url(url, document.base_uri) for url in urls]
25
26for url in abs_urls:
27 # Create a request message
28 request = ahnet.RequestMessage(url)
29
30 # Extract icon
31 response = document.context.network.send(request)
32
33 # Check whether the response is successful
34 if response.is_success:
35 # Save icon to a local file system
36 file_path = os.path.join(output_dir, os.path.basename(url.pathname))
37 with open(file_path, 'wb') as file:
38 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.
Vous pouvez télécharger les exemples complets et les fichiers de données depuis GitHub.
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 !
