Extraire des images d'un site Web à l'aide de Aspose.HTML

Supposons que vous soyez développeur web, graphiste, chercheur, journaliste ou étudiant, en un mot, une personne travaillant sur son propre projet. Dans ce cas, vous aurez évidemment besoin d’images pour votre projet au cours du processus de développement. Pour télécharger manuellement des images à partir d’un site web, vous passez beaucoup de temps. Vous devrez copier chaque URL d’image, puis enregistrer l’image, mais vous pouvez utiliser la bibliothèque Aspose.HTML for .NET library pour extraire des images d’un site web de manière programmatique.

Dans cet article, nous verrons comment extraire différents types d’images d’un site Web en utilisant l’API Aspose.HTML for .NET. L’utilisation de notre bibliothèque C# vous aidera à télécharger des images à partir d’un site Web. C’est mieux que de les chercher manuellement. Essayez donc ! Extraire des images d’un site Web par programmation !

Extraire des images d’un site Web – Code C#

La plupart des images d’un document HTML sont représentées à l’aide de l’élément <img>. Voici un exemple d’utilisation de Aspose.HTML for .NET pour trouver les images spécifiées par cet élément. Pour télécharger des images à partir d’un site web, vous devez donc suivre les étapes suivantes :

  1. Utilisez le constructeur HTMLDocument(Url) pour créer une instance de la classe HTMLDocument et transmettez-lui l’URL du site web sur lequel vous souhaitez trouver des images.
  2. Utilisez la méthode GetElementsByTagName(“img”) pour collecter tous les éléments <img>. La méthode renvoie une liste des éléments <img> du document HTML.
  3. Utilisez la méthode Select() pour créer une collection distincte d’URL d’images relatives et la méthode GetAttribute(“src”) pour extraire l’attribut src de chaque élément <img>.
  4. Créer des URL d’images absolues en utilisant la classe Url et la propriété BaseURI de la classe HTMLDocument.
  5. Pour chaque URL absolu, créez une requête à l’aide du constructeur RequestMessage(url).
  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. Enfin, si la réponse est positive, utilisez la méthode File.WriteAllBytes() pour enregistrer chaque image dans un fichier local.
 1// Extract images from website using C#
 2
 3// Open a document you want to download images from
 4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
 5
 6// Collect all <img> elements
 7HTMLCollection images = document.GetElementsByTagName("img");
 8
 9// Create a distinct collection of relative image URLs
10IEnumerable<string> urls = images.Select(element => element.GetAttribute("src")).Distinct();
11
12// Create absolute image URLs
13IEnumerable<Url> absUrls = urls.Select(src => new Url(src, document.BaseURI));
14
15foreach (Url url in absUrls)
16{
17    // Create an image request message
18    using RequestMessage request = new RequestMessage(url);
19
20    // Extract image
21    using ResponseMessage response = document.Context.Network.Send(request);
22
23    // Check whether a response is successful
24    if (response.IsSuccess)
25    {
26        // Save image to a local file system
27        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
28    }
29}

Note: Il est important de respecter les lois sur les droits d’auteur et d’obtenir l’autorisation ou la licence 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 – Code C#

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 à l’aide de la bibliothèque Aspose.HTML for .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 GetElementsByTagName(“link”) pour collecter tous les éléments <link>.
  3. Pour filtrer les images qui ne sont pas des icônes, utilisez la méthode Where() qui filtre la collection en se basant sur l’expression link => link.GetAttribute("rel") == "icon". Ainsi, la collection icons ne contiendra que les liens dont l’attribut rel a la valeur icon.
  4. Utilisez la méthode Select() pour créer une collection distincte d’URL d’icônes relatives et la méthode GetAttribute(“href”) pour extraire l’attribut href de chaque élément <link>.
  5. Créer des URL d’icônes absolues en utilisant la classe Url et la propriété BaseURI de la classe HTMLDocument.
  6. Ensuite, pour chaque URL absolu, créez une requête en utilisant la classe RequestMessage.
  7. 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.
  8. Si la réponse est positive, utilisez la méthode File.WriteAllBytes() pour sauvegarder les icônes dans un fichier local. Vous disposerez ainsi d’une collection d’icônes de sites web dans votre dossier local.
 1// Download icons from website using C#
 2
 3// Open a document you want to download icons from
 4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 5
 6// Collect all <link> elements
 7HTMLCollection links = document.GetElementsByTagName("link");
 8
 9// Leave only "icon" elements
10IEnumerable<Element> icons = links.Where(link => link.GetAttribute("rel") == "icon");
11
12// Create a distinct collection of relative icon URLs
13IEnumerable<string> urls = icons.Select(icon => icon.GetAttribute("href")).Distinct();
14
15// Create absolute icon URLs
16IEnumerable<Url> absUrls = urls.Select(src => new Url(src, document.BaseURI));
17
18foreach (Url url in absUrls)
19{
20    // Create a downloading request
21    using RequestMessage request = new RequestMessage(url);
22
23    // Extract icon
24    using ResponseMessage response = document.Context.Network.Send(request);
25
26    // Check whether a response is successful
27    if (response.IsSuccess)
28    {
29        // Save icon to a local file system
30        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
31    }
32}

Vous pouvez utiliser ces exemples C# pour automatiser l’extraction de toutes les images d’un site web, ce qui peut s’avérer utile pour des tâches telles que l’archivage, la recherche, l’analyse de contenu web ou toute autre application à usage personnel. Cette méthode est également très utile pour les concepteurs et les développeurs de sites web qui souhaitent extraire des images de sites sans avoir à plonger dans le code source.

Vous pouvez télécharger les exemples C# complets et les fichiers de données sur GitHub.

Aspose.HTML propose des applications Web HTML qui sont une collection en ligne de convertisseurs gratuits, de fusions, d’outils SEO, de générateurs de code HTML, d’outils URL, et bien plus encore. Les applications fonctionnent sur n’importe quel 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 en termes de référencement, où que vous soyez. Utilisez notre collection d’applications web HTML pour effectuer vos tâches quotidiennes et rendre votre flux de travail fluide !

Texte “Applications Web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.