Guide pour utiliser au mieux l’utilitaire wget sous Windows : trucs et secrets pour télécharger des fichiers, des pages web et des sites entiers à partir de la ligne de commande.
wget est un utilitaire de ligne de commande qui vous aide à télécharger des fichiers depuis le web en utilisant les protocoles HTTP, HTTPS et FTP. Il est largement utilisé dans les systèmes Linux et MacOs pour télécharger des fichiers ou des pages Web entières, mais il fonctionne aussi parfaitement dans un environnement Windows.
L’utilitaire offre diverses options et fonctionnalités pour gérer les téléchargements de manière flexible. Il est notoire que le navigateur web n’est pas le meilleur outil pour télécharger des fichiers et des pages web. Il n’est généralement pas possible, par exemple, de suspendre le téléchargement d’un fichier pour le reprendre plus tard et, lorsqu’elle est prise en charge, cette fonction ne fonctionne pas bien.
Un outil tel que wget, en revanche, outre la possibilité de suspendre le téléchargement, prend également en charge le téléchargement de fichiers de manière récursive : ainsi, il est même possible de demander la récupération de pages web et de ressources liées à la même page. Un niveau de profondeur pratiquement infini.
Les principales fonctionnalités de wget
Outre le téléchargement récursif déjà mentionné, wget peut gérer l’authentification, les connexions cryptées et d’autres caractéristiques spécifiques au protocole. L’utilitaire, comme mentionné dans l’introduction, peut reprendre le téléchargement à partir du point où il a été interrompu, ce qui permet d’économiser du temps et de la bande passante.
En ce qui concerne la bande passante, wget offre la possibilité de fixer des limites, ce qui permet de contrôler la vitesse de téléchargement tout en évitant les encombrements.
Parmi les options de wget, citons la possibilité de personnaliser le traitement des téléchargements, en spécifiant des en-têtes personnalisés, en définissant des temps d’attente, en limitant la profondeur de téléchargement, etc.
Différences entre wget et curl
Nous avons déjà parlé du potentiel et de l’utilisation de curl, un autre utilitaire populaire pour l’échange de données sur le réseau. Par rapport à curl, wget présente des différences significatives en termes de fonctionnalité et d’utilisation.
En général, wget est principalement conçu pour télécharger des fichiers, des pages web et leurs éléments. curl, en revanche, est un puissant outil de transfert de données qui prend en charge non seulement le téléchargement de fichiers, mais aussi leur chargement, l’envoi de requêtes HTTP, FTP, HTTPS, FTPS, la prise en charge de proxy, l’authentification, l’envoi de données avec diverses méthodes (POST, PUT,…) et d’autres fonctionnalités avancées.
Alors que wget ne prend en charge que les protocoles HTTP, HTTPS et FTP, curl étend son champ d’action aux protocoles suivants : HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DICT, POP3, IMAP, SMTP, RTMP et bien d’autres encore.
En général, si vous souhaitez simplement télécharger des fichiers depuis Internet, Wget est souvent le choix le plus simple et le plus direct. Cependant, si vous avez des besoins plus complexes, tels que l’envoi de requêtes personnalisées ou l’utilisation de différents protocoles, curl offre un ensemble plus large de fonctionnalités. Les deux outils sont extrêmement utiles et peuvent toujours être utilisés ensemble pour tirer le meilleur parti de leurs caractéristiques spécifiques.
Comment configurer wget sous Windows pour télécharger des fichiers
Bien que wget soit à l’origine un utilitaire destiné aux plateformes de type Unix, les puissantes fonctionnalités qu’il offre sont également utilisables sur les systèmes Windows. Il est conseillé de télécharger la dernière version de wget pour Windows, en faisant attention à la version (pour les systèmes 64 bits ou x64, 32 bits ou x86, ARM64).
Le programme consiste en un seul fichier exécutable à enregistrer dans un dossier de support, par exemple c:\wget. Cependant, par défaut, wget ne peut pas être utilisé à partir de n’importe quel dossier du système utilisé, car la variable d’environnement correcte n’est pas présente.
Pour l’ajouter, il suffit d’appuyer sur Windows+R, de taper sysdm.cpl ,3 et de cliquer sur le bouton Variables d’environnement. Double-cliquez sur la ligne Chemin dans le volet Variables utilisateur pour…, sélectionnez Nouveau puis indiquez le chemin c:\wget, où se trouve l’exécutable wget.
Enfin, le système doit être redémarré pour que les modifications soient prises en compte.
Alternativement, il est possible de configurer wget dans Windows très facilement en utilisant le logiciel winget. Il s’agit d’un utilitaire de ligne de commande Microsoft très pratique qui permet d’installer automatiquement des programmes dans Windows 10 et 11.
Pour télécharger wget et définir automatiquement la bonne variable d’environnement, il suffit d’ouvrir l’invite de commande sous Windows 10 et Windows 11 et de taper ce qui suit :
winget install wget
Après avoir redémarré Windows, tapez wget –version dans le dossier où vous vous trouvez pour obtenir le numéro de version de l’utilitaire.
Comment utiliser wget sous Windows
Pour télécharger des fichiers sous Windows, il vous suffit de vous rendre dans un dossier de votre choix (nous vous suggérons de créer un dossier C:\TEMP à utiliser pour les tests), puis de lancer la commande wget suivie de l’URL de la ressource distante que vous souhaitez télécharger. En pointant, l’une après l’autre, les URL des ressources à télécharger, celles-ci seront automatiquement téléchargées. Exemple :
wget <url1> <url2> <url3>
En utilisant la syntaxe suivante, il est possible de sauvegarder la ressource avec un nom différent de celui d’origine (notez l’utilisation de l’option -O) :
wget -O page.html <adresseweb>
Avec l’option -c, il est possible de reprendre un téléchargement partiel antérieur, qui n’a pas été achevé dans son intégralité.
En ajoutant l’option -P à la place, vous demandez le stockage des fichiers dans un dossier autre que celui dans lequel vous vous trouvez.
En utilisant la syntaxe suivante, vous pouvez même fournir à wget un fichier texte contenant la liste des URL des ressources à télécharger :
wget -i url.txt
Bien entendu, chaque URL doit être spécifiée dans le fichier texte sur une ligne distincte.
Dans tous les cas, dans les exemples présentés jusqu’à présent comme dans les suivants, les URL ou les adresses Web doivent être indiquées dans leur intégralité (y compris les URI, par exemple les indications HTTPS ou HTTP). Dans le cas contraire, le comportement de wget peut, pour diverses raisons, ne pas être conforme aux attentes.
Limiter les activités de wget
Comme mentionné au début, wget fournit également un certain nombre d’options accessoires qui limitent l’utilisation de la bande passante du réseau. En utilisant la commande suivante, par exemple, il est demandé à wget de ne pas consommer la bande passante disponible pour plus de 1 MB/s :
wget –limit-rate=1M <url>
L’exemple suivant, cependant, limite wget à ne pas utiliser la bande passante disponible à plus de 200 KB/s :
wget –limit-rate=200K <url>
Il convient de noter que les valeurs sont exprimées en octets par seconde et non en bits par seconde. Dans un autre article, nous expliquons la différence entre gigabits et gigaoctets. Une connexion offrant dans des conditions optimales une bande passante de téléchargement de 100 Mbps permet d’atteindre 12,5 MB/s (100 Mbps / 8 bits = 12,5 MB/s), une connexion de 20 Mbps permet d’atteindre au maximum 2,5 MB/s.
Les 200 KB/s utilisés dans le deuxième exemple équivalent à une bande passante de 1,6 Mbps (200 KB/s * 8 bits = 1.600 Kbps = 1,6 Mbps).
Pour définir une période de pause après chaque téléchargement, l’option -w peut être ajoutée. Certains serveurs empêchent les activités de web scraping en bloquant les adresses IP distantes qui tentent de télécharger de grandes quantités de fichiers dans un court laps de temps. La commande suivante introduit une attente de 5 secondes entre un téléchargement et le suivant :
wget -w 5 <url1> <url2>
Enfin, l’utilitaire wget vous permet de définir le nombre de tentatives de téléchargement d’un fichier. Par défaut, wget essaie de télécharger un fichier dont le téléchargement a échoué jusqu’à 20 fois. Le commutateur -t permet d’augmenter ou de diminuer cette valeur :
wget -t 5 <url>
Gestion des téléchargements récursifs
wget offre tout ce qui est nécessaire pour télécharger, par exemple, une page web et toutes les ressources qui y sont liées, ainsi que les pages HTML liées. Cette approche est appelée téléchargement récursif et peut avoir une profondeur virtuellement illimitée. En fait, wget peut donc se transformer en un véritable crawler ou araignée qui, un peu comme le composant logiciel similaire de Google ou d’autres moteurs de recherche, peut suivre les liens sur n’importe quelle page web.
D’un point de vue pratique, la plupart des serveurs web finissent par bloquer le web scraping, il est donc toujours préférable d’agir avec prudence, avec wget comme avec tout autre logiciel similaire.
Par défaut, le niveau de profondeur est de 5 et la syntaxe à utiliser est la suivante :
wget -r <url>
En ajoutant -l suivi d’une valeur, il est possible de personnaliser le niveau de profondeur de l’analyse du Web par wget.
Le fait est que cela ne crée pas une copie locale entièrement navigable car les liens dans les pages HTML pointent vers des ressources distantes. Pour que wget modifie les URL distantes et fasse toujours référence aux ressources téléchargées localement, l’option -k peut être ajoutée.
Là encore, pour télécharger l’intégralité du contenu de chaque page, y compris les images, les feuilles de style CSS et les autres ressources présentes, il suffit d’ajouter l’option switch -p à la commande wget.
Demander la génération d’un fichier journal
La syntaxe wget -o <logfile> <url> permet de demander à l’utilitaire de créer un fichier journal qui permet d’examiner toute l’activité réalisée et, pour chaque opération, de connaître les raisons d’un éventuel échec, par exemple.
Problèmes liés aux certificats numériques
Certains sites web peuvent poser des problèmes de chargement du certificat numérique correspondant, utilisé avec le protocole HTTPS pour établir une connexion cryptée entre le client et le serveur. Dans ce cas, quel que soit le type d’erreur, il est possible de résoudre le problème en ajoutant l’option switch –no-check-certificate à la commande wget.
Il est important de souligner que l’utilisation de cette option particulière doit être limitée aux pages web pour lesquelles on a confiance. La présence de problèmes au niveau du certificat HTTPS est en effet le signe d’un manque d’attention à l’égard du site web.