Extraction par sélecteur CSS
L’extraction par sélecteur CSS récupère des données précises d’une page : les éléments que vous désignez — un prix, un titre, une référence — sont relevés et renvoyés en liste structurée. Nos serveurs ouvrent la page et vous livrent leurs valeurs, prêtes pour un tableur.
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.
Le sélecteur, une adresse dans la page
Chaque élément d’une page porte des repères — identifiant, classe, balise — qu’un sélecteur CSS permet de viser avec précision. En fournissant ce sélecteur, vous dites à l’outil exactement quoi relever, et rien d’autre. C’est la méthode des développeurs : rapide, exacte et prévisible tant que la structure de la page ne bouge pas. L’outil d’inspection du navigateur aide à retrouver le bon sélecteur en pointant l’élément voulu à l’écran.
Une liste de valeurs, pas une image
Contrairement à une capture, qui produit une photographie, l’extraction renvoie la donnée elle-même : le texte, le nombre, l’adresse contenus dans l’élément. Vous obtenez une liste que vous pouvez trier, coller dans un tableur ou envoyer à un autre traitement. C’est la différence entre voir un prix sur une image et disposer du chiffre, réutilisable tel quel dans un calcul ou une comparaison à grande échelle.
Relever plusieurs éléments d’un coup
Un sélecteur peut désigner un seul élément ou toute une famille : par exemple, le prix de chaque produit d’une liste. L’outil parcourt alors la page et renvoie autant de valeurs qu’il trouve de correspondances, dans l’ordre où elles apparaissent. C’est ce qui rend la méthode efficace sur les pages répétitives — catalogues, annuaires, résultats — où la même information revient, ligne après ligne, sous une structure identique.
Sélecteur ou IA : lequel choisir
Le sélecteur est imbattable quand la page est stable et que vous savez précisément où se trouve la donnée : c’est exact et économique. Il devient fragile si le site change souvent de structure, car un sélecteur caduc ne trouve plus rien. Pour une page mouvante, ou quand vous préférez décrire ce que vous cherchez plutôt que de le pointer, l’extraction guidée par IA prend le relais, au prix d’un traitement un peu plus coûteux.
Cas d’usage
Grille de prix
Camille Moreau relève le prix de chaque article d’un catalogue en ligne d’un seul sélecteur, et obtient la liste complète à comparer dans un tableur.
Collecte de références
Menuiserie Rousseau & Fils extrait les références et désignations d’une page fournisseur, pour les intégrer à son propre fichier d’achats.
Suivi d’une valeur
Julien Lefèvre cible la seule note moyenne d’une fiche produit, qu’il relève régulièrement pour en suivre l’évolution.
Page répétitive
Sur une liste de résultats, Studio Lumen SAS récupère d’un coup tous les titres, chacun renvoyé dans l’ordre d’apparition sur la page.
Questions fréquentes
Faut-il savoir écrire un sélecteur CSS ?
Un développeur le fait d’emblée. Pour les autres, l’outil d’inspection du navigateur permet de retrouver le sélecteur d’un élément en le pointant à l’écran, en quelques clics.
Que se passe-t-il si la structure de la page change ?
Un sélecteur devenu caduc ne trouve plus l’élément et ne renvoie rien. Sur un site qui se réorganise souvent, l’extraction guidée par IA, plus tolérante, est un meilleur choix.
Puis-je relever plusieurs valeurs en une fois ?
Oui. Un sélecteur qui vise une famille d’éléments — le prix de chaque produit, par exemple — renvoie autant de valeurs qu’il y a de correspondances, dans l’ordre de la page.
Combien coûte une extraction par sélecteur ?
Le tarif est de $0.040 par requête et $0.001 par URL, en dollars US, sans abonnement. Le prix ne dépend pas du nombre de valeurs relevées sur la page.
L’adresse et les données sont-elles conservées ?
Non. La page est lue le temps de relever les valeurs, qui vous sont renvoyées, 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].
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/scrape-selector \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com","selectors":{"titulo":"h1","precio":".price"}}'const res = await fetch("https://api.kit.forhosting.com/web/scrape-selector", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com",
"selectors": {
"titulo": "h1",
"precio": ".price"
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/scrape-selector",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com",
"selectors": {
"titulo": "h1",
"precio": ".price"
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/scrape-selector", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com","selectors":{"titulo":"h1","precio":".price"}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com","selectors":{"titulo":"h1","precio":".price"}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/scrape-selector", 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",
"selectors": {
"titulo": "h1",
"precio": ".price"
}
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.scrape_selector",
"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. |