Comment enregistrer un tableau d'un site web en fichier CSV
Un fichier CSV est un fichier texte brut que tous les tableurs et bases de données peuvent lire. Récupérer un tableau web dans ce format est simple ; l'obtenir sans accents corrompus, sans mauvais séparateur ou sans zéros perdus est plus délicat. Voici quatre méthodes et les limites de chacune.
1. Copier, coller dans Excel, puis enregistrer sous
Sélectionnez le tableau, copiez-le, collez-le dans une feuille Excel vide, puis utilisez la commande d'enregistrement du menu Fichier et choisissez le type de fichier CSV UTF-8.
Idéal pour : un petit tableau dont vous avez besoin une seule fois, lorsque vous avez déjà Excel ouvert.
Là où ça coince : si vous choisissez le format CSV simple au lieu de CSV UTF-8, chaque caractère en dehors de votre page de codes Windows (accents, cyrillique, chinois) se transforme en point d'interrogation. Excel écrit également le séparateur défini dans vos paramètres régionaux Windows ; sur de nombreux systèmes européens, votre fichier « séparé par des virgules » utilise en réalité des points-virgules, et le programme qui le lit peut s'attendre à des virgules. Le collage peut également supprimer les zéros non significatifs (un code comme 01234 devient 1234), transformer des valeurs telles que 1-2 en dates, et capturer du texte autour du tableau lors de la sélection.
2. Google Sheets : coller, puis télécharger
Collez le tableau dans un fichier Google Sheets, ouvrez le menu Fichier, puis le sous-menu de téléchargement, et choisissez le format des valeurs séparées par des virgules (.csv).
Idéal pour : n'importe quel ordinateur doté d'un navigateur, sans besoin d'Excel, avec un fichier toujours en UTF-8.
Là où ça coince : le fichier utilise toujours des virgules, ce qui peut empêcher Excel dans une région utilisant une virgule décimale de diviser les colonnes lors d'un double-clic. Seule la feuille active est téléchargée, et non tout le fichier. Tout comme Excel, Sheets peut convertir certaines valeurs en dates ou en nombres lors du collage.
3. Python : pandas.read_html
Si vous travaillez déjà avec Python, pandas lit tous les tableaux d'une page et en écrit un au format CSV :
pandas.read_html("https://example.com/page")[0].to_csv("table.csv", index=False)
Le chiffre entre crochets indique la position du tableau sur la page (0 pour le premier). Vous devez avoir installé pandas et lxml.
Idéal pour : récupérer la même page chaque semaine, ou traiter des centaines de pages via un script.
Là où ça coince : certains sites refusent la requête avec une erreur 403 car elle ne ressemble pas à un navigateur, vous obligeant à télécharger la page vous-même et à transmettre le HTML à pandas. L'outil ne voit pas les pages protégées par une connexion ni les tableaux générés par JavaScript après le chargement de la page. Les notes de bas de page telles que [1] restent dans les en-têtes et les valeurs, et les nombres entiers peuvent apparaître sous la forme 8021407192.0 dès qu'une cellule est vide dans une colonne.
4. Une extension de navigateur : un clic sur la page que vous consultez
Une extension fonctionne sur la page telle que vous la voyez dans votre navigateur, ce qui lui permet d'agir également après la connexion et sur les tableaux créés en JavaScript. Nous avons créé Ordelio Copie de tableaux (gratuit, sans limite de lignes) :
- Ouvrez la page et cliquez sur l'icône de l'extension (ou appuyez sur Alt+Maj+Y). Elle liste tous les tableaux de la page, du plus grand au plus petit ; survolez-en un pour le mettre en surbrillance.
- Appuyez sur CSV : le navigateur enregistre un fichier contenant ce tableau. Les accents sont préservés car le fichier est encodé en UTF-8 avec un marqueur destiné à Excel, et le séparateur est un point-virgule si votre langue utilise une virgule pour les décimales (vous pouvez forcer l'utilisation d'une virgule, d'un point-virgule ou d'une tabulation dans les options).
L'extension supprime également les notes de bas de page comme [1], répète les cellules fusionnées pour garder les colonnes alignées, et écrit les codes tels que 01234 dans le fichier exactement tels qu'ils apparaissent sur la page (un tableur ouvrant le fichier pourra toutefois les transformer en nombres).
Là où ça coince : elle enregistre ce qui est affiché sur la page au moment présent, ce qui signifie qu'un tableau réparti sur plusieurs pages nécessite un fichier par page, et qu'elle ne peut pas mettre à jour le fichier de manière autonome comme le ferait un script.
Obtenir Ordelio Copie de tableaux pour Microsoft Edge Versions Chrome et Firefox : en cours de validation.
Quelle méthode choisir
| Enregistrer sous Excel | Google Sheets | pandas | Extension | |
|---|---|---|---|---|
| Pages derrière une connexion | Oui (par copier-coller) | Oui (par copier-coller) | Non | Oui |
| Accents correctement affichés | Seulement avec CSV UTF-8 | Oui | Oui | Oui |
| Choix du séparateur | Non (défini par Windows) | Non (toujours des virgules) | Oui (via un paramètre) | Oui (via une option) |
| Des centaines de pages d'un coup | Non | Non | Oui | Non |
| Temps nécessaire pour une nouvelle page | Environ une minute | Environ une minute | Plusieurs minutes la première fois | Quelques secondes |
En bref : pour un script qui s'exécute chaque semaine sur des pages publiques, utilisez pandas. Pour une extraction ponctuelle depuis une page que vous lisez, en particulier derrière une connexion, enregistrez-la directement depuis la page.
Vous avez trouvé un tableau qu'aucun de ces outils ne parvient à traiter ? Dites-le-nous, nous lisons chaque message.