Truc informatique

Manipuler une URL

Une URL, ce n'est pas une suite de signes magiques : c'est une adresse qu'on peut lire et modifier. Une fois que tu vois ses morceaux, tu peux changer un paramètre pour demander d'autres données - et télécharger le résultat dans Colab d'une seule ligne.

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.

https://exoplanetarchive.ipac.caltech.edu/TAP/sync?query=select+top+200+pl_name,pl_rade,pl_bmasse+from+pscomppars+where+pl_rade+is+not+null+and+pl_bmasse+is+not+null&format=csv

Tout commence au ?

La règle est toujours la même, sur tous les sites du monde :

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. »

Le déclic

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.

Bricolage

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

Cas du Drive

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
Pour la marche complète (régler le partage, Sheets, GitHub, le test universel), vois le truc Une URL pour ton fichier.

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.

Les guillemets ne sont pas décoratifs

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 ».

Le ! devant wget t'intrigue ? C'est la commande système dans Colab : vois le truc Des commandes Linux dans Colab.