L'anatomie d'une URL
Prenons une vraie adresse : celle qui demande des données d'exoplanètes au catalogue de la NASA. Au premier coup d'oeil elle fait peur, mais elle est faite de morceaux bien rangés.
- Le protocole
https://- la langue qu'on parle pour communiquer (le web sécurisé). - Le domaine
exoplanetarchive.ipac.caltech.edu- le serveur à qui on s'adresse (l'ordinateur de la NASA). - Le chemin
/TAP/sync- la porte précise où frapper sur ce serveur. - Les clés
query,format- le nom de chaque réglage qu'on envoie. - Les valeurs - ce qu'on met dans chaque réglage (ici, une requête et le mot
csv).
Tout commence au ?
La règle est toujours la même, sur tous les sites du monde :
- Le
?marque la fin de l'adresse de base et le début des paramètres. - Chaque paramètre est une paire
clé=valeur(un nom, le signe égal, une valeur). - Le
&sert de « et » : il colle les paramètres les uns aux autres. - Dans une valeur, un espace se cache souvent sous la forme d'un
+(ou%20). C'est pour ça que la requête est pleine de+au lieu d'espaces.
Donc cette URL dit, en clair : « Serveur de la NASA, par la porte /TAP/sync, voici ma query (une requête), et je veux le format csv. »
La valeur de query est en réalité une phrase dans un langage de bases de données (du SQL) : « sélectionne les 200 premières, le nom, le rayon et la masse, dans la table pscomppars, là où le rayon et la masse existent. » Tu peux la modifier comme une phrase.
Ajouter un champ à la requête
Tu veux aussi savoir quel télescope a découvert chaque planète ? Le catalogue a une colonne pour ça : disc_telescope. Il suffit de l'ajouter à la liste après le select, séparée par une virgule.
Avant - on demande 3 colonnes :
select+top+200+pl_name,pl_rade,pl_bmasse+from+pscomppars+...
Après - on en demande une 4e :
select+top+200+pl_name,pl_rade,pl_bmasse,disc_telescope+from+pscomppars+...
Même logique pour d'autres réglages : remplace format=csv par format=json pour changer le format, ou monte top+200 à top+1000 pour recevoir plus de lignes. Un paramètre changé = des données différentes.
Quelques colonnes utiles du catalogue : disc_year (année de découverte), discoverymethod (méthode), pl_orbper (période orbitale, en jours), sy_dist (distance du système, en parsecs).
À toi : construis ta requête
Coche les colonnes qui t'intéressent, choisis combien de planètes, et regarde l'URL se fabriquer toute seule - avec la ligne !wget prête à coller dans Colab. Tout se passe dans ta page.
L'URL complète
À coller dans une cellule Colab
Le préfixe magique de Google Drive
Le même réflexe marche pour ton propre fichier déposé dans Google Drive. Drive cache l'identifiant de ton fichier dans son lien de partage ; il suffit de le coller derrière un préfixe de téléchargement fixe :
# Le préfixe de téléchargement de Drive, à apprendre par coeur : https://drive.google.com/uc?export=download&id=IDENTIFIANT_DU_FICHIER
Tu reconnais la structure ? Un chemin /uc, puis deux paramètres après le ? : export=download (« donne-moi le fichier brut, pas la jolie page ») et id=... (lequel).
D'où vient cet identifiant ? De ton lien de partage. Tu ouvres ton fichier sur Drive, tu fais Partager → Tout le monde avec le lien, et Drive te donne une URL comme celle-ci. L'identifiant, c'est le morceau (en orange) entre /d/ et /view :
https://drive.google.com/file/d/1AbCdEfGhIjKlMnOp/view?usp=sharing
Il ne reste qu'à recoller les deux morceaux : le préfixe fixe, puis ton identifiant à la place de id=. Ça donne l'URL de téléchargement direct, prête pour !wget :
https://drive.google.com/uc?export=download&id=1AbCdEfGhIjKlMnOp
Le pont commun : !wget
Catalogue de la NASA ou ton fichier Drive : dès que tu tiens une URL directe, la même commande la télécharge dans Colab et lui donne le nom de fichier que tu veux, grâce à l'option -O (la lettre « O », pour output).
# Les exoplanètes de la NASA -> exoplanetes.csv !wget -O exoplanetes.csv "https://exoplanetarchive.ipac.caltech.edu/TAP/sync?query=select+top+200+pl_name,pl_rade,pl_bmasse+from+pscomppars&format=csv" # Ton fichier Drive -> mesures.csv !wget -O mesures.csv "https://drive.google.com/uc?export=download&id=1AbCdEfGhIjKlMnOp"
Ensuite, le fichier exoplanetes.csv est posé à côté de ton calepin, prêt à être lu par son nom - exactement comme n'importe quel fichier local, sans se soucier d'où il vient. Pour l'ouvrir et le parcourir en Python, vois le truc Manipuler des fichiers.
Mets toujours l'URL entre guillemets dans !wget. Sans eux, le terminal voit le & de l'URL comme son propre « lance en arrière-plan » et coupe ton adresse en deux : le téléchargement échoue de façon mystérieuse. Les guillemets disent « tout ça, c'est une seule adresse ».
! devant wget t'intrigue ? C'est la commande système dans Colab : vois le truc Des commandes Linux dans Colab.