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 :

  1. 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.
  2. 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.
  3. Extraire les URL uniques des images en parcourant les éléments <img> collectés et en accédant à leur attribut src à 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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 :

  1. 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.
  2. Utilisez la méthode get_elements_by_tag_name(“link”) pour collecter tous les éléments <link>.
  3. 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’attribut rel est égal à icon, qui sont typiquement utilisés pour définir des icônes.
  4. 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.
  5. 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.
  6. 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.
  7. 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 !

Texte “Applications Web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.