CodeGym /Cours /Docker SELF /Utilisation de `curl` et `wget` pour télécharger des fich...

Utilisation de `curl` et `wget` pour télécharger des fichiers

Docker SELF
Niveau 8 , Leçon 4
Disponible

Utilisation de curl et wget pour télécharger des fichiers

1. Introduction à curl

Tu as déjà été dans une situation où, lors d’un entretien, on te demande de télécharger un fichier depuis Internet via le terminal, et tu regardes l’écran d’un air hésitant, réalisant que tu as oublié comment faire ? Aujourd’hui, on va apprendre à utiliser curl et wget, qui deviendront tes compagnons fidèles pour travailler avec les données réseau.

Ces outils te permettent de télécharger des pages web, de récupérer des fichiers, d’envoyer des requêtes HTTP, de bosser avec des API et même d’automatiser des scripts. On va explorer leur fonctionnement, leurs avantages et leurs usages typiques.

curl — c’est un outil de ligne de commande pour transférer des données via des protocoles réseau. La vraie puissance de curl, c’est sa flexibilité : il supporte plus de 20 protocoles (HTTP, HTTPS, FTP, SCP et même SMTP). Selon les développeurs, c’est un excellent "couteau suisse" pour bosser avec Internet.

Syntaxe de base de curl

curl [options] URL

En gros, tu tapes la commande curl, tu précises l’adresse nécessaire — et voilà le résultat sous tes yeux. Allez, décomposons ça pour comprendre comment ça marche.

Télécharger une page web

Disons que tu veux télécharger la page d’accueil de Google. Tu fais ça comme suit :

curl http://www.google.com

Sur l’écran, tu verras le code HTML de la page. Plutôt pratique si tu veux explorer la structure d’un site ou automatiser quelque chose en rapport avec lui.

Sauvegarde du contenu dans un fichier

Si tout ce flux textuel te dérange, tu peux enregistrer le résultat dans un fichier :

curl -o google.html http://www.google.com

Le flag -o (output) dit à curl qu’on veut rediriger la sortie dans un fichier. Maintenant, le code HTML de la page est sauvegardé dans google.html. Veux-tu rire ? Donne ce fichier à un ami en disant que tu as "téléchargé tout Internet".

Télécharger un fichier

Imagine que tu dois télécharger un fichier depuis Internet (genre un .zip). Là-dessus, curl est super fort :

curl -O http://example.com/file.zip

Différent de -o, le flag -O sauvegarde le fichier avec son nom d’origine, indiqué dans l’URL. C’est utile si tu télécharges beaucoup de fichiers depuis une même source.

Authentification HTTP

Parfois, l’accès à un fichier ou un ressource API est protégé par un login et un mot de passe. Dans ce cas, utilise curl avec le flag -u :

curl -u username:password http://example.com/private-data

C’est particulièrement utile pour bosser avec des API privées, comme GitHub ou Docker Registry.

Téléchargement via API

Une des fonctionnalités les plus cool de curl — bosser avec des API. Disons que tu dois envoyer une requête à un serveur qui retourne des données au format JSON :

curl -X GET "https://api.exchangerate-api.com/v4/latest/USD"

Ici, le flag -X indique la méthode de requête HTTP (GET, POST, DELETE, etc.). Pour automatiser l’intégration avec des services externes, c’est juste top.


2. Qu'est-ce que wget ?

Si curl est un couteau suisse, alors wget est un bulldozer. Sa tâche principale est de télécharger des fichiers. La principale différence avec curl, c'est que wget est spécialement conçu pour le téléchargement fiable de gros fichiers et prend en charge la reprise de téléchargement, ce qui est super pratique avec une connexion instable.

Syntaxe de base de wget

wget [options] URL

Télécharger un fichier simple

wget http://example.com/file.zip

Cette commande téléchargera le fichier et le sauvegardera avec son nom original dans le répertoire actuel. Simple et efficace.

Sauvegarder avec un autre nom

Si vous n'aimez pas le nom original du fichier, vous pouvez en définir un autre :

wget -O newfile.zip http://example.com/file.zip

Reprise de téléchargement

Supposons que vous téléchargiez un gros fichier et que la connexion soit coupée. Pas de souci : utilisez simplement l'option -c (continue) :

wget -c http://example.com/largefile.iso

wget reprendra le téléchargement là où il s'est arrêté. Cela fonctionne même après plusieurs jours, si le serveur prend en charge ce mode.

Télécharger un site entier

Oui, avec wget, vous pouvez télécharger un site entier (ou une copie). Utilisez simplement l'option --mirror :

wget --mirror http://example.com

Cette commande téléchargera le site en conservant la structure des répertoires. Maintenant, vous avez un "miroir" du site pour une utilisation hors ligne.


3. Comparaison entre curl et wget

Fonction curl wget
Support d'un grand nombre de protocoles Oui Seulement HTTP/HTTPS et FTP
Reprise automatique du téléchargement Non (peut être scripté) Oui
Travail avec les API Oui Non
Facilité de gestion des fichiers Moyenne Excellente
Téléchargement de sites entiers Non Oui

En gros, si t'as besoin de bosser avec des API ou des trucs spécifiques, utilise curl. Mais si ton but est de télécharger des fichiers, wget sera le meilleur choix.


4. Application pratique

Téléchargement et traitement d'un fichier

On combine wget et nos compétences en manipulation de texte :

wget -O data.txt http://example.com/data.txt
cat data.txt | grep "mot-clé" | awk '{print $2, $4}'

Ici, on a téléchargé un fichier, filtré les lignes par mot-clé et extrait les colonnes nécessaires.

Travailler avec une API

On télécharge les taux de change avec curl et on cherche la devise nécessaire :

curl -s "https://api.exchangerate-api.com/v4/latest/USD" | grep "EUR"

C'est utile si tu veux construire un système automatisé de conversion de devises.

Automatisation des mises à jour

Imagine que tu dois télécharger une mise à jour de fichier tous les jours. Voici un exemple de script simple :

#!/bin/bash
wget -O updates.zip http://example.com/daily-updates.zip
unzip -o updates.zip -d /path/to/updates

On sauvegarde le script et on l’ajoute dans cron. Maintenant, il sera exécuté automatiquement — chouette, non ?


5. Erreurs typiques et particularités

Erreur 403 (Forbidden) :

Ça arrive si le serveur demande des headers supplémentaires (par ex., User-Agent). Pour corriger :

curl -A "Mozilla/5.0" http://example.com

Redirections :

Si le serveur te renvoie vers une autre URL, ajoute le flag -L dans curl :

curl -L http://example.com

Erreurs SSL :

Parfois, wget ou curl peuvent râler à propos du SSL. Tu peux désactiver la vérification du certificat (mais c’est pas secure !) :

wget --no-check-certificate https://example.com
curl -k https://example.com

Avec cet arsenal puissant, tu es prêt à conquérir le web depuis ton terminal. Plus aucun fichier ou API ne pourra t’échapper — il est temps de télécharger, traiter et automatiser !

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION