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.