Tous les articles

Browser Tasks : comment scraper les sites riches en JavaScript

Plus de 70 % des sites web modernes ont besoin de JavaScript pour afficher leur contenu. Voici comment les Browser Tasks de FourA vous permettent d'obtenir la page complète lorsque les requêtes HTTP renvoient une page vide.

Plus de 70 % des sites web modernes s'appuient sur JavaScript pour afficher leur contenu. Une requête HTTP standard ne voit que la structure HTML initiale. Les données réelles se chargent après l'exécution de JavaScript, c'est pourquoi les outils de scraping traditionnels renvoient des pages vides.

Les Browser Tasks de FourA résolvent ce problème en exécutant une véritable instance headless de Chrome pour chaque requête.

Comment ça marche

Lorsque vous envoyez une tâche avec type: "browser", FourA :

  1. Lance un navigateur Chrome headless
  2. Navigue vers l'URL cible
  3. Attend que le JavaScript s'exécute et que le DOM se stabilise
  4. Attend éventuellement qu'un sélecteur CSS spécifique apparaisse
  5. Renvoie le HTML entièrement rendu

Tout ce processus se déroule sur l'infrastructure de FourA. Vous récupérez un HTML propre sans avoir à installer de navigateur, à configurer Puppeteer ou à gérer les mises à jour de Chrome.

Quand utiliser les Browser Tasks

Utilisez les Browser Tasks lorsque :

  • Applications monopages ou SPA (React, Vue, Angular)
  • Pages avec chargement différé ou lazy-loading (défilement infini, boutons « charger plus »)
  • Sites nécessitant un consentement aux cookies ou une configuration JS initiale
  • Contenu situé derrière des flux d'authentification côté client

Privilégiez les tâches single lorsque :

  • Pages HTML générées côté serveur (sites d'actualités, blogs, wikis)
  • API REST qui renvoient directement du JSON
  • La vitesse est la priorité (les Browser Tasks prennent de 2 à 10 secondes, contre moins d'une seconde pour les tâches single)

Exemple : scraper une application React

curl -X POST https://eu.api.foura.ai/api/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/dashboard",
    "type": "browser",
    "options": {
      "waitFor": ".dashboard-content",
      "timeout": 15000
    }
  }'

Le sélecteur waitFor indique à FourA d'attendre que .dashboard-content apparaisse dans le DOM avant de capturer la page. Cela garantit que toutes les données asynchrones sont chargées.

Conseils de performance

  • Utilisez toujours waitFor avec un sélecteur spécifique au lieu de vous fier aux délais d'attente (timeouts). C'est à la fois plus rapide et plus fiable.
  • Définissez un timeout raisonnable. 15 secondes suffisent pour la plupart des SPA. Ne l'augmentez que pour les backends particulièrement lents.
  • Utilisez single par défaut et ne passez à browser que si le contenu est absent de la réponse.

Et ensuite ?

Nous travaillons sur d'autres fonctionnalités de navigation, notamment la capture d'écran, la génération de PDF et la navigation multi-étapes (clic, défilement, remplissage de formulaires). Mais même sans ces options, les Browser Tasks résolvent déjà le problème le plus courant : obtenir le contenu réel des pages générées par JavaScript plutôt qu'une structure vide.

Consultez la documentation pour obtenir la comparaison complète des types de tâches.