Zum Inhalt springen

Schnellstart

Website-Screenshots in Python

Erstellen Sie mit requests einen Screenshot über eine einzige HTTPS-Anfrage, ohne eine Browser-Infrastruktur betreiben zu müssen.

Ironfang Render bietet eine gewöhnliche HTTPS-API, daher kann Python sie mit requests aufrufen, ganz ohne SDK. Eine erfolgreiche Anfrage liefert die Bildbytes direkt zurück, bereit zum Schreiben in eine Datei.

Einen Schlüssel erstellen

Erstellen Sie im Portal einen API-Schlüssel. Das Geheimnis wird einmal angezeigt und als Hash gespeichert. Legen Sie es in einer Umgebungsvariablen namens IRONFANG_API_KEY ab statt in der Quelldatei; das Beispiel unten liest es von dort.

export IRONFANG_API_KEY="if_live_..."

Installieren

pip install requests

Einen Screenshot erstellen

import os
import sys

import requests

key = os.environ.get("IRONFANG_API_KEY")
if not key:
    sys.exit("Set IRONFANG_API_KEY to your Ironfang API key.")

resp = requests.post(
    "https://api.ironfang.uk/render/v1/screenshot",
    headers={"Authorization": f"Bearer {key}"},
    json={"url": "https://example.com", "width": 1280},
    timeout=60,
)

if resp.status_code != 200:
    # Errors are JSON even though success is binary.
    err = resp.json()["error"]
    sys.exit(f"{resp.status_code} {err['code']}: {err['message']}")

with open("shot.png", "wb") as f:
    f.write(resp.content)

Führen Sie es aus, und der Screenshot wird als shot.png im aktuellen Verzeichnis gespeichert:

python shot.py

Fehlerbehandlung

Erfolgreiche Render-Antworten sind binär. Fehler kommen als JSON in der Form {"error": {"code", "message"}}. Ein fehlender oder unbekannter Schlüssel ergibt 401 invalid_api_key. Ein Schlüssel ohne die Berechtigung render:render ergibt 403 insufficient_scope.

# The status check comes before the file is written: a failed
# render returns JSON, which must not be saved as shot.png.

PDFs und Vorlagen

Derselbe Aufruf funktioniert für PDFs unter /render/v1/pdf und für Bilder aus Vorlagen unter /render/v1/image/{id}. Nur der Pfad und der Body ändern sich.

Weiterlesen