Extraire un tableau d’une page web
Cet outil repère les tableaux d’une page web et les convertit en données exploitables : lignes et colonnes rangées, prêtes pour un tableur ou un traitement automatisé. Fini le copier-coller qui déforme les cellules : vous récupérez un fichier propre, en CSV ou en JSON.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
En finir avec le copier-coller
Copier un tableau depuis une page web tourne souvent au calvaire : les colonnes se mélangent, les cellules fusionnent, la mise en forme s’en va de travers dans le tableur. L’outil règle le problème en lisant la structure réelle du tableau plutôt que son apparence, et en la restituant proprement. Vous récupérez des données déjà rangées, sans la demi-heure de nettoyage manuel qui suit d’ordinaire un collage raté depuis un navigateur.
Lignes et colonnes préservées
L’enjeu d’un tableau, c’est le croisement : telle valeur appartient à telle ligne et telle colonne. L’outil respecte cette organisation, de sorte que chaque donnée reste à sa place, sous son en-tête. Un tableau de tarifs garde la correspondance entre produit et prix ; un tableau d’horaires, entre jour et créneau. C’est cette fidélité à la structure qui rend le résultat directement utilisable, sans avoir à reconstituer à la main quelle valeur allait avec quoi.
CSV pour le tableur, JSON pour un traitement
Deux formats de sortie, deux usages. Le CSV s’ouvre d’un double-clic dans Excel ou un tableur équivalent : idéal pour trier, filtrer ou calculer à la main. Le JSON, lui, s’adresse à un traitement automatisé ou à une application qui consomme les données directement. Choisissez selon la suite : un œil humain sur un tableur, ou un programme qui enchaîne. Dans les deux cas, la donnée sort structurée, prête à l’emploi.
Les tableaux complexes
Un tableau simple se convertit sans accroc. Les cas plus retors — cellules fusionnées, en-têtes sur plusieurs niveaux, tableaux imbriqués — demandent parfois une relecture, car il n’existe pas de façon unique de les mettre à plat. L’outil fait au mieux pour préserver le sens, mais sur ces structures élaborées, un contrôle rapide du résultat vaut la peine avant de bâtir un calcul dessus. La lecture se fait dans la limite de 30 secondes par page.
Cas d’usage
Statistiques publiques
Sophie Nguyen récupère un tableau de données publiques en CSV, l’ouvre dans Excel et le trie, sans recopier une seule cellule à la main.
Grille tarifaire
Menuiserie Rousseau & Fils extrait la grille de prix d’un fournisseur en gardant la correspondance exacte entre référence et tarif.
Horaires et créneaux
Une association convertit le tableau des horaires d’un lieu pour l’intégrer, propre et structuré, à son propre document d’information.
Alimenter un traitement
Studio Lumen SAS récupère un tableau en JSON pour le passer directement à une application, sans étape de mise en forme intermédiaire.
Questions fréquentes
Sous quel format le tableau est-il renvoyé ?
Au choix en CSV, pour l’ouvrir dans un tableur comme Excel, ou en JSON, pour un traitement automatisé. Dans les deux cas, la donnée sort structurée, prête à l’emploi.
Les cellules fusionnées sont-elles gérées ?
L’outil fait au mieux pour préserver le sens, mais les cellules fusionnées et les en-têtes à plusieurs niveaux n’ont pas de mise à plat unique. Sur ces tableaux, un contrôle rapide est conseillé.
Que se passe-t-il s’il y a plusieurs tableaux sur la page ?
L’outil repère les tableaux présents et les restitue. Sur une page qui en compte plusieurs, vous récupérez leurs données pour faire le tri de ce qui vous intéresse.
Combien coûte l’extraction d’un tableau ?
Le tarif est de $0.040 par requête et $0.001 par URL, en dollars US, sans abonnement. Le prix ne dépend ni de la taille ni du nombre de tableaux.
L’adresse et les données sont-elles conservées ?
Non. La page est lue le temps d’extraire les tableaux, dont le fichier vous est renvoyé, puis l’URL et le résultat sont écartés de nos serveurs.
Faut-il un compte ?
Non, aucune inscription. Le service se règle à l’usage ; une facture s’obtient auprès de [email protected], où une vraie personne vous répond.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/tables \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/tables", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/tables",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/tables", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/tables", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"url": "https://ejemplo.com"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.tables",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |