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é.
 1# Extract images from a website in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare the output directory
 8output_dir = "output"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Load the webpage and collect image URLs
12with ah.HTMLDocument("https://docs.aspose.com/html/net/tutorial/html-colors/") as document:
13    # Collect all <img> elements
14    images = document.get_elements_by_tag_name("img")
15
16    urls = {image.get_attribute("src") for image in images if image.get_attribute("src")}
17
18    # Download each image
19    for image_url in urls:
20        url = ah.Url(image_url, document.base_uri)
21        file_name = os.path.basename(url.pathname)
22
23        if not file_name:
24            continue
25
26        with ahnet.RequestMessage(url) as request:
27            with document.context.network.send(request) as response:
28                if response.is_success:
29                    with open(os.path.join(output_dir, file_name), "wb") as file:
30                        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.
 1# Extract icons from a website in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare the output directory
 8output_dir = os.path.join("output", "icons")
 9os.makedirs(output_dir, exist_ok=True)
10
11# Load the webpage and collect icon URLs
12with ah.HTMLDocument("https://docs.aspose.com/html/python-net/") as document:
13    links = document.get_elements_by_tag_name("link")
14    icon_urls = {
15        link.get_attribute("href")
16        for link in links
17        if "icon" in (link.get_attribute("rel") or "").lower().split()
18        and link.get_attribute("href")
19    }
20
21    # Download each icon
22    for icon_url in icon_urls:
23        url = ah.Url(icon_url, document.base_uri)
24        file_name = os.path.basename(url.pathname)
25
26        if not file_name:
27            continue
28
29        with ahnet.RequestMessage(url) as request:
30            with document.context.network.send(request) as response:
31                if response.is_success:
32                    file_path = os.path.join(output_dir, file_name)
33                    with open(file_path, "wb") as file:
34                        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 !

Texte “Applications Web HTML”