Skip to content

Comment capturer des pages protégées par authentification avec cookies et automatisation

Découvrez deux approches pour capturer des pages authentifiées : injection de cookies de session et utilisation d'étapes d'automatisation pour remplir les formulaires de connexion. Exemples en Python et JavaScript.

Le défi : les pages derrière une authentification

Les tableaux de bord, portails SaaS, panneaux d'administration et rapports clients se trouvent tous derrière un mur de connexion. Un appel API de capture standard ne voit que la page de connexion — pas le contenu dont vous avez besoin. Il existe deux méthodes fiables pour franchir ce mur avec une API.

Approche 1 : Injecter des cookies de session

Si vous disposez déjà d'un cookie de session valide (issu d'un flux de connexion dans votre backend), passez-le directement à l'API. Le navigateur charge la page avec le cookie pré-défini, sautant entièrement le formulaire de connexion.

curl "https://api.screenshotcenter.com/api/screenshot/create\
  ?url=https://app.example.com/dashboard\
  &cookie=session_id%3Dabc123%3B%20domain%3Dapp.example.com\
  &key=YOUR_API_KEY"

C'est l'approche la plus rapide — pas d'interaction avec la page, pas de remplissage de formulaire. L'inconvénient est que vous devez gérer le cycle de vie du cookie vous-même.

Approche 2 : Étapes d'automatisation

Quand vous n'avez pas de cookie de session, utilisez les étapes d'automatisation pour remplir et soumettre le formulaire de connexion directement dans le navigateur :

{
  "url": "https://app.example.com/login",
  "steps": [
    { "action": "type", "target": "#email", "value": "user@example.com" },
    { "action": "type", "target": "#password", "value": "s3cret" },
    { "action": "click", "target": "button[type=submit]" },
    { "action": "wait", "value": 3000 }
  ]
}

Le navigateur remplit le formulaire, clique sur soumettre, attend le chargement du tableau de bord, puis prend la capture. C'est plus résilient à l'expiration des cookies puisque la connexion se fait à chaque fois.

Combiner les deux approches

Pour une fiabilité maximale, utilisez les cookies comme méthode principale et les étapes d'automatisation en repli quand le cookie expire. Votre backend peut détecter une réponse 401 et se ré-authentifier avant de réessayer.

Exemple JavaScript

const ScreenshotCenter = require('screenshotcenter');
const client = new ScreenshotCenter({ apiKey: 'YOUR_API_KEY' });

const result = await client.create({
  url: 'https://app.example.com/login',
  steps: [
    { action: 'type', target: '#email', value: 'user@example.com' },
    { action: 'type', target: '#password', value: 's3cret' },
    { action: 'click', target: 'button[type=submit]' },
    { action: 'wait', value: 3000 },
  ],
});

console.log(result.screenshot_url);

Considérations de sécurité

Ne codez jamais les identifiants en dur dans vos appels API. Utilisez des variables d'environnement ou un gestionnaire de secrets. Si vous utilisez des cookies partagés, renouvelez-les régulièrement et limitez la portée au domaine minimum requis.

En savoir plus

Consultez le cas d'usage complet d'API de capture authentifiée pour des patterns avancés incluant la gestion MFA, les flux SSO et la persistance de session dans les captures par lots.