Rendu HTML d’une page
Le rendu HTML ouvre une page dans un vrai navigateur, attend que son JavaScript s’exécute, puis renvoie le code HTML final — celui qui contient réellement le contenu affiché. Beaucoup de sites livrent d’abord une page presque vide, remplie ensuite par le navigateur : c’est ce résultat complet que vous obtenez, prêt à lire ou à traiter.
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 problème des pages dynamiques
Sur un site moderne, le premier code reçu ne contient souvent qu’un squelette : le contenu véritable — texte, prix, liste — n’arrive qu’après l’exécution du JavaScript, une fois la page affichée. Un outil qui se contente de lire ce premier code voit une page vide. Le rendu résout ce point en laissant la page se construire entièrement avant d’en prendre le HTML, comme le ferait un visiteur devant son écran.
Un navigateur complet, pas un simple appel réseau
Récupérer une adresse par un simple appel réseau ramène le code brut de départ, sans exécuter quoi que ce soit. Le rendu, lui, ouvre un navigateur réel : styles appliqués, scripts exécutés, contenu inséré. La différence est décisive sur les sites où tout est généré côté client. Vous recevez le HTML tel qu’il existe une fois la page vivante, avec les éléments que le JavaScript a ajoutés au fil de son exécution.
Ce que vous en faites ensuite
Le HTML rendu sert de matière première : vous pouvez l’analyser pour en extraire des données, le convertir en texte ou en Markdown, l’archiver ou le confier à un autre traitement. C’est l’étape de départ de nombreux flux de travail sur des sites dynamiques, là où les méthodes classiques échouent faute de voir le vrai contenu. Une fois le HTML complet en main, la suite du traitement redevient simple et fiable.
Délai et cas particuliers
Le rendu attend le chargement de la page dans la limite de 30 secondes. Une page rapide est prête bien avant ; une page très lourde, ou qui charge sans fin de nouveaux éléments, peut atteindre ce délai et n’être renvoyée qu’en l’état à cet instant. Certains sites protégés contre l’automatisation peuvent aussi limiter l’accès : le résultat reflète alors ce que la page a réellement servi lors de la visite.
Cas d’usage
Contenu généré côté client
Un développeur récupère le HTML rendu d’une page construite en JavaScript, dont le contenu n’apparaît qu’après exécution, pour l’analyser proprement.
Étape avant extraction
Sophie Nguyen obtient d’abord le HTML complet d’une page dynamique, puis en extrait les données voulues, là où un simple appel ne renvoyait rien.
Archivage du contenu réel
Studio Lumen SAS conserve le HTML final d’une page de démonstration, avec les éléments ajoutés par le navigateur, et non la coquille de départ.
Contrôle d’affichage
Un intégrateur vérifie ce qui figure réellement dans la page une fois les scripts exécutés, pour diagnostiquer un contenu manquant.
Questions fréquentes
Pourquoi le code brut d’une page est-il parfois vide ?
Parce que le contenu est inséré par le JavaScript après le premier chargement. Le rendu attend cette exécution et renvoie le HTML une fois la page réellement remplie.
Quelle différence avec un simple téléchargement de la page ?
Un téléchargement classique ramène le code de départ sans rien exécuter. Le rendu ouvre un navigateur complet, applique les styles et lance les scripts, puis renvoie le HTML final.
Le rendu attend-il le chargement complet ?
Oui, dans la limite de 30 secondes. Une page rapide est prête aussitôt ; une page très lourde peut atteindre ce délai et n’être renvoyée qu’en l’état à ce moment-là.
Combien coûte un rendu HTML ?
Le tarif est de $0.040 par requête et $0.001 par URL, en dollars US, sans abonnement. Vous ne payez que les rendus que vous demandez.
L’adresse et le HTML sont-ils conservés ?
Non. La page est ouverte le temps de produire le HTML, qui vous est renvoyé, puis l’URL et le résultat sont écartés de nos serveurs.
Faut-il un compte pour l’utiliser ?
Non, aucune inscription. Le rendu se règle à l’usage ; une facture s’obtient auprès de [email protected], où une vraie personne répond en espagnol ou en anglais.
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/render \
-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/render", {
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/render",
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/render", 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/render", 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.render",
"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. |