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 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 :

  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 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 !

Texte “Applications Web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.