Aller au contenu
Se connecter S'inscrire

Rendu JavaScript

Les SPA et les pages riches en JS nécessitent une exécution réelle dans un navigateur. Web Scraping API gère cela derrière un seul indicateur.

Ajoutez render_js=1 à n’importe quelle requête. Shifter lance une nouvelle instance Chrome headless, navigue vers l’URL, et renvoie le DOM après rendu.

Fenêtre de terminal
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://example.com&render_js=1"

Le rendu JS est facturé au même tarif de 1 crédit par requête réussie que les récupérations statiques. Aucun surcoût.

La plupart des SPA terminent leur chargement après l’apparition d’un élément spécifique. Utilisez wait_for_css pour bloquer jusqu’à ce que ce sélecteur soit rendu :

Fenêtre de terminal
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://shop.example.com&render_js=1&wait_for_css=.product-price"

La requête se termine dès que .product-price est présent dans le DOM, ou échoue au terme du délai (30s par défaut).

Limitez le temps total que le navigateur peut passer sur une page avec timeout (en millisecondes) :

Fenêtre de terminal
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://slow.example.com&render_js=1&timeout=10000"

Utile pour scraper des tableaux de bord à chargement lent lorsque vous voulez récupérer ce qui est visible après 10 secondes plutôt qu’un rendu complet.

Faites défiler, cliquez, ou exécutez des étapes arbitraires avant la capture grâce à js_instructions (JSON encodé en URL). Modèles courants :

Faire défiler pour charger des flux infinis :

[{"action": "scrollTo", "selector": "footer", "timeout": 5000, "block": "start"}]

Cliquer sur un bouton avant le scraping :

[{"action": "click", "selector": "button.load-more", "timeout": 3000}]

Enchaîner plusieurs étapes :

[
{"action": "click", "selector": "button.accept-cookies"},
{"action": "scrollTo", "selector": "div.results"},
{"action": "wait", "duration": 2000}
]

Passez le tableau sous forme de chaîne encodée en URL dans js_instructions.

Prenez une capture d’écran de la page entière au lieu du DOM en ajoutant screenshot=1. La réponse est un fichier PNG binaire. Voir Avancé.

  • Pages HTML statiques (articles d’actualité, billets de blog, contenu de type RSS)
  • API JSON (utilisez une récupération directe, pas le point de terminaison de scraping)
  • Fichiers et binaires

Se passer de render_js est plus économique en latence, bien que les crédits soient les mêmes.