Web Pics Downloader - un aspirateur d'images de site Web en C#

RACINE
 
Voir dans une fenêtre à part Cliquez ici pour voir la page dans un explorateur séparé.



- - > Mis à jour le Dimanche 27 avril 2003 < - -

Web Pics Downloader

Tout le matériel qui est présenté n'est nullement un cours officiel de l'ESSI ou de Microsoft. Il a été produit par l'auteur et en est l'exclusive propriété.
Toutes remarques pouvant aider à l'améliorer ou à corriger les diverses erreurs pouvant subsister sont les bienvenues. (email auteur)

Cliquez pour télécharger Cliquez ici pour obtenir les sources de Web Pics Downloader.
Cliquez pour télécharger Cliquez ici pour obtenir l'exécutable Web Pics Downloader.

Qu'est ce que Web Pics Downloader ? C'est un "logiciel" qui a pour simple but de vous permettre de télécharger toutes les images présentes sur un pages web, ou référencées par celle-ci.
Par exemple, vous votre cousin a étrenné son dernier appareil photo numérique, et a posé 30 photos sur son site web perso. Solution : utilisez Web Pics Downloader ! Passez lui l'url de la page, indiquez lui l'url de la page et dites lui de télécharger toutes les images de la page.
Votre cousin, l'esprit pratique à en fait mis toutes ses images en thumbnails (petites images que quand on clique dessus, on arrive sur l'image "en grand"). Rebelotte ! Web Pics Downloader, mais dites lui ce coup-ci de télécharger les images référencées.

Mots clés :

HttpWebResponse    WebRequest    HttpWebResponse    GetResponseStream    GetResponse
(HttpWebRequest)WebRequest.Create    Regex    System.Text.RegularExpressions    System.Net


Code snippets :

Deux expressions régulières utilisées dans le soft :
/// <summary>
/// pour reconnaitre un chevron "<img ... >"
/// </summary>
private static Regex rImg = new Regex (@"<(i|I)(m|M)(g|G)[^>]*>");
/// <summary>
/// Pour reconnaitre un chevron '<a href="...">'
/// </summary>
private static Regex rAHref = new Regex ("<(a|A)[^>]*(h|H)(r|R)(e|E)(f|F)=\"(?<destUrl>[^\"]+)\"[^>]*>");
"
Récupérer une page web pour ... en faire ce que vous voulez . Dans ce logiciel, je l'utilise en récupérant le flux interne et en le parsant avec des expressions régulières :
HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create (txbUrl.Text);
HttpWebResponse wr = (HttpWebResponse)hwr.GetResponse();

... utilisez votre HttpWebResponse ici ...

using (StreamReader sr = new StreamReader (wr.GetResponseStream())) { .. parsing ... }


wr.Close(); //important, le nombre de connexion est limité

Que peut-on faire pour l'instant :
  • Télécharger les images référencées ou dans la page (jpg, png ou gif)
  • Télécharger vers n'importe quel répertoire (sera créé au besoin)
  • Récupérer le code du programme pour en faire un téléchargeur de n'importe quoi ;)
  • Multitasking : de l'interface graphique et du téléchargement
  • Possibilité de voir la page par utilisation du composant ActiveX de IE
  • ...
Ce que l'on devrait pouvoir faire (un jour) :
  • Drag'n'Drop de l'url
  • Multitasking : queuing, etc...
  • Définir des format de recherche (expressions régulières) d'image différentes de celles de base
  • Reccursivité
  • ...

Notes sur la release du 27 avril 2003 :
De petites modifications pas forcément essentielles mais interressantes. Que ce soit l'utilisation d'IE dans une WinForm ou de l'utilisation des WorkerThreads pour effectuer de petites tâches en background : c'est toujours bon à savoir faire. Amusez vous bien avec. Et comme toujours : mon email
Notes sur la release intiale (3 avril 2003) :
Je suis assez content de ce petit bout de code que je viens d'écrire en une après-midi :) Il est bien utilisable, pas trop trop mal écrit, le code "interressant" est (je pense) facilement réutilisable, bien que pas conçu exactement comme tel. Amusez vous bien avec, et s'il vous sert, faites moi signe, ça me fera plaisir ! vizzini@essi.fr


Merci à :

Merci à M. Paul FRANCHI, professeur à l'ESSI Nice-Sophia Antipolis pour ses cours d'analyse lexicale qui sont bien pratiques dès qu'on doit écrire des expressions régulières.

 




par Alain Vizzini (vizzini@essi.fr)
pour l'ESSI & Microsoft, création 03-04-2003, dernière màj 27-04-2003


pages vues depuis le 14 oct. 2002