Skip to content

Cas d'usage

Extraire des données de n’importe quelle page — avec la capture

Capture et extraction en une requête. Les trackers JavaScript récupèrent prix, classements, compteurs de vues ou tout élément DOM, renvoyés dans la même réponse API que l’image.

Fonctionnement

Une requête : capture plus données

Les trackers sont des extraits JavaScript attachés à une requête de capture. Une fois la page rendue, chaque expression s’évalue sur le DOM vivant et le résultat revient avec l’URL de la capture.

Comme ils s’exécutent après rendu complet — y compris contenu JS — ils fonctionnent sur SPA, scroll infini et contenu AJAX.

  • Plusieurs trackers par requête en un seul appel API
  • Compatible contenu rendu par JavaScript et SPA
  • Définitions réutilisables avec la variable input
  • Combinable avec les commandes d’automatisation pour pages authentifiées
  • Preuve visuelle systématique pour chaque donnée extraite
Réponse API — trackers
{
  "id": 48291,
  "status": "finished",
  "storage_url": "https://...",
  "trackers": [
    {
      "id": "page_title",
      "name": "Page Title",
      "value_type": "string",
      "return": [{
        "found": 1,
        "shot": 1,
        "name": "Page Title",
        "value": "My SaaS Dashboard"
      }]
    },
    {
      "id": "price",
      "name": "Product Price",
      "value_type": "number",
      "return": [{
        "found": 1,
        "shot": 1,
        "name": "Product Price",
        "value": "49.99"
      }]
    }
  ]
}

Exemple API

Capturer une page et extraire des valeurs en un appel

Passez trackers avec toute requête de capture. Chaque tracker s’exécute sur le DOM entièrement rendu après chargement.

curl -X POST https://api.screenshotcenter.com/v1/screenshot \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/product/B09ABC1234",
    "trackers": [
      {
        "id": "product_price",
        "name": "Product Price",
        "name_type": "string",
        "value": "document.querySelector(\".price\").textContent",
        "value_type": "number"
      },
      {
        "id": "in_stock",
        "name": "In Stock",
        "name_type": "string",
        "selector": ".availability",
        "value": "document.querySelector(\".availability\").textContent",
        "value_type": "string"
      },
      {
        "id": "page_title",
        "name": "Page Title",
        "name_type": "string",
        "value": "document.title",
        "value_type": "string"
      }
    ],
    "size": "page",
    "format": "png"
  }'

Cas d'usage

Ce que les équipes extraient avec les trackers

Chaque capture devient une donnée structurée. Voici les scénarios les plus courants.

🛒

Prix et stocks

Suivez prix, disponibilité et délais sur pages concurrents ou fournisseurs. La capture complète la piste d’audit.

  • Prix sur Amazon, eBay ou votre verticale
  • Alertes rupture / retour en stock
  • Promotions et fenêtres de remise
📈

Suivi de position SEO

Capturez les SERP et extrayez la position pour un mot-clé. Preuve visuelle et rang numérique dans la même réponse.

  • Position de votre domaine sur les requêtes cibles
  • Évolution après changements on-page ou netlinking
  • Comparaison par pays via routage géographique
🛍️

Rang produit Amazon

Rang catégorie et recherche sur les fiches Amazon. Corrélation avec campagnes, avis et prix grâce aux captures horodatées.

  • Best Seller Rank dans votre catégorie
  • Rang recherche pour des ASIN précis
  • Alertes sur chutes de rang
📊

Métriques réseaux sociaux

Vues, likes, abonnés et engagement sur pages publiques — sans API plateforme.

  • Vues et likes YouTube
  • Retweets, likes et quotes sur X
  • Engagement LinkedIn pour la veille marque
🔍

Détection de changements

Texte d’éléments ciblés — titres, prix, versions, mentions légales — sans diff d’images.

  • Changement de accroche concurrent
  • Numéros de version sur pages téléchargement
  • Mises à jour CGU / légales
📡

Intelligence concurrentielle

Collecte structurée à l’échelle pour enrichir votre base veille sans scraper séparé.

  • Pricing sur pages SaaS concurrentes
  • Disponibilité de fonctionnalités dans les tableaux produit
  • Volume d’offres d’emploi comme signal de croissance

Paramètres des trackers

Référence des définitions

Chaque tracker est un objet JSON dans le tableau trackers. Champs obligatoires : id, name, value.

ChampObligatoireDescription
idobligatoireIdentifiant unique du tracker dans la réponse
nameobligatoireLibellé fixe ou JavaScript calculant le libellé depuis la page
valueobligatoireExpression JavaScript renvoyant la valeur à extraire
name_typeoptionnel« string » (défaut) ou « javascript » — code ou chaîne fixe pour name
value_typeoptionnel« string » (défaut) ou « number » — typage de la valeur
selectoroptionnelSélecteur CSS ou XPath requis pour exécuter le tracker
inputoptionnelVariable substituée dans name, value et selector comme <input>

Exemples prêts à l’emploi

Définitions trackers à copier-coller

Intégrez ces définitions directement dans votre requête API. Chacune cible un cas connu.

Titre de page
{
  "id": "page_title",
  "name": "Page Title",
  "name_type": "string",
  "value": "document.title",
  "value_type": "string"
}
Position Google
{
  "id": "google_search_rank",
  "name": "document.querySelectorAll('input[aria-label]')[0].value",
  "name_type": "javascript",
  "selector": "a[href*='<input>']",
  "input": "example.com",
  "value": "(function(){
    var cls = document.querySelectorAll(\"a[href*='<input>'] > h3\")[0]
              .getAttribute('class').split(' ').join('.');
    return Array.from(document.querySelectorAll(`a > h3.${cls}`))
      .filter(x => x.offsetParent != null)
      .findIndex(x => x.parentNode.href.includes('<input>')) + 1;
  })()",
  "value_type": "number"
}
Rang produit Amazon
{
  "id": "amazon_category_rank",
  "name": "document.querySelectorAll('h1')[0].textContent",
  "name_type": "javascript",
  "input": "B09ABC1234",
  "selector": "//*[@id='<input>']",
  "value": "document.evaluate(
    '//*[@id=\"<input>\"]',document,null,
    XPathResult.FIRST_ORDERED_NODE_TYPE,null
  ).singleNodeValue.parentNode.parentNode
   .querySelectorAll('span')[0].textContent",
  "value_type": "number"
}
Nombre de vues YouTube
{
  "id": "youtube_views",
  "name": "document.querySelectorAll(
    '#title > h1 > yt-formatted-string')[0].textContent + ' (Views)'",
  "name_type": "javascript",
  "value": "document.querySelectorAll(
    'span.view-count')[0].textContent",
  "value_type": "number"
}

Schéma avancé

Combiner trackers et commandes d’automatisation

Connectez-vous, naviguez ou interagissez avant l’extraction : tableaux de bord authentifiés, rapports protégés, parcours multi-commandes — en une seule requête.

  • Connexion SaaS puis extraction MRR ou nombre d’utilisateurs
  • Portail client puis montants de factures
  • Accepter les cookies puis suivre les prix en boutique
Lire : captures derrière connexion →
curl -X POST https://api.screenshotcenter.com/v1/screenshot \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://app.example.com/login",
    "steps": [
      {"command": "type",     "element": "#email",    "value": "user@example.com"},
      {"command": "type",     "element": "#password", "value": "your-password"},
      {"command": "click",    "element": "#submit"},
      {"command": "sleep",    "value": "3"},
      {"command": "navigate", "value": "https://app.example.com/dashboard"},
      {"command": "sleep",    "value": "2"}
    ],
    "trackers": [
      {
        "id": "mrr",
        "name": "Monthly Recurring Revenue",
        "name_type": "string",
        "selector": ".mrr-value",
        "value": "document.querySelector(\".mrr-value\").textContent",
        "value_type": "number"
      }
    ]
  }'

Extrayez des données avec vos captures

500 captures gratuites pour tester les trackers. Sans carte bancaire. Première définition en quelques minutes — sans infrastructure de scraping dédiée.

Questions fréquentes

Dans quel contexte JavaScript les trackers s’exécutent-ils ?

Dans Chromium une fois la page rendue, avec accès au DOM complet, y compris frameworks. Équivalent à la console DevTools.

Plusieurs trackers dans une requête ?

Oui. Tableau trackers : tous s’exécutent sur le même rendu ; résultats agrégés dans la réponse.

À quoi ressemble la réponse ?

Chaque tracker a un tableau return : found (1 ou 0), shot, name, value. Si le sélecteur est absent, found vaut 0.

Trackers et commandes d’automatisation ?

Oui. Connexion, navigation, attente de chargement puis extraction — tout dans un seul appel.

À quoi sert la variable input ?

Placeholder pour une définition réutilisable : ID produit, domaine, etc., sans dupliquer le JavaScript.

Extraire sans capture ?

Les trackers accompagnent toujours une capture : preuve visuelle et contexte pour audit et conformité.