API de capture Python : exemple complet de bout en bout
Tutoriel Python complet couvrant l'installation, les captures basiques, la génération PDF, les étapes d'automatisation, l'extraction de données et le traitement par lots avec le SDK ScreenshotCenter.
Installation
Installez le SDK Python depuis PyPI :
pip install screenshotcenter
Capture basique
import screenshotcenter
client = screenshotcenter.Client(api_key="YOUR_API_KEY")
# Prendre une capture
result = client.create(url="https://example.com")
print(result["screenshot_url"])
La méthode create() envoie la requête et renvoie le résultat quand la capture est prête. Le résultat inclut l'URL de la capture, le statut et les métadonnées.
Capture pleine page avec contrôle du viewport
result = client.create(
url="https://example.com",
full_page=True,
screen_width=1920,
screen_height=1080,
device_scale=2, # Retina
delay=2000, # Attendre 2s pour le contenu lazy
)
Génération PDF
result = client.create(
url="https://example.com/invoice",
pdf=True,
pdf_format="A4",
pdf_margin_top="20mm",
pdf_margin_bottom="20mm",
pdf_background=True,
)
# Télécharger le PDF
client.download(result["id"], "invoice.pdf")
Voir l'API de génération PDF pour tous les paramètres PDF.
Étapes d'automatisation (flux de connexion)
result = 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},
],
)
Le navigateur remplit le formulaire de connexion, le soumet, attend le chargement de la page, puis prend la capture. Voir l'API de capture authentifiée pour plus de patterns.
Extraction de données avec les trackers
result = client.create(
url="https://example.com/product/123",
trackers=[
{"name": "price", "selector": ".product-price", "type": "text"},
{"name": "title", "selector": "h1", "type": "text"},
{"name": "in_stock", "selector": ".stock-status", "type": "text"},
],
)
# Accéder aux données extraites
for tracker in result.get("trackers", []):
print(f"{tracker['name']}: {tracker['value']}")
Les trackers extraient des valeurs du DOM en même temps que la capture — pas de scraping séparé. Voir l'extraction de données de pages web pour des patterns avancés.
Routage par pays
# Capture depuis l'Allemagne
result = client.create(
url="https://example.com",
country="de",
locale="de-DE",
timezone="Europe/Berlin",
)
Captures par lots
# Soumettre un lot
batch = client.batch_create(
urls=["https://example.com/page1", "https://example.com/page2", "https://example.com/page3"],
options={"full_page": True, "country": "us"},
)
# Suivre la progression
info = client.batch_info(batch["id"])
print(f"Progression : {info['completed']}/{info['total']}")
Pour le traitement par lots à grande échelle, voir captures par lots à grande échelle.
Livraison vers S3
result = client.create(
url="https://example.com",
apps=[{
"app": "s3",
"bucket": "my-screenshots",
"path": "captures/{yyyy}/{mm}/{dd}/{id}.png",
}],
)
Voir l'intégration S3 pour la configuration IAM et les variables de modèle de chemin.
Gestion des erreurs
try:
result = client.create(url="https://example.com")
except screenshotcenter.APIError as e:
print(f"Erreur API {e.status_code}: {e.message}")
except screenshotcenter.TimeoutError:
print("Capture expirée — essayez d'augmenter le délai")
Étapes suivantes
Parcourez la référence complète du SDK Python pour toutes les méthodes et paramètres. Pour JavaScript, voir le SDK JavaScript.