Screenshot einer Website aus einem echten Browser in der EU
Adresse eingeben, Viewport oder ganze Seite wählen, JPEG oder PNG. Ein frischer Browser auf EU-Hardware lädt die Seite, lehnt das Cookie-Banner über den Consent-Autopiloten ab, wartet, bis sie zur Ruhe kommt, und liefert das Bild. Der API-Aufruf, der es erzeugt hat, steht daneben.
Öffentliche URL eingeben; Format, ganze Seite oder Viewport und eine Gerätevorgabe wählen.
Diese Prüfung öffnet einen echten Browser auf unseren Servern und braucht JavaScript in deinem.
Beobachtungen, keine Urteile. Deine Eingabe wird für dieses Ergebnis verarbeitet und in ein Nutzungsjournal geschrieben, das die Datenschutzerklärung beschreibt; sonst wird nichts gespeichert.
Die Screenshot-API
Eine Session, ein Aufruf, ein Bild. Die Antwort enthält das Bild als Base64 mit Breite und Höhe und die Angabe, ob ein Consent-Banner weggeklickt wurde.
# 1. Session öffnen
SESSION=$(curl -s -X POST https://browserberg.com/v1/sessions \
-H "Authorization: Bearer $BROWSERBERG_API_KEY" \
-H 'Content-Type: application/json' -d '{}' | jq -r .session.id)
# 2. Screenshot (Banner zuerst abgelehnt, ganze Seite, PNG)
curl -s -X POST https://browserberg.com/v1/sessions/$SESSION/screenshot \
-H "Authorization: Bearer $BROWSERBERG_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "url": "https://www.beispiel.de/", "format": "png", "fullPage": true, "consent": "reject" }' \
| jq -r .base64 | base64 -d > seite.png
# 3. Session freigeben
curl -s -X DELETE https://browserberg.com/v1/sessions/$SESSION \
-H "Authorization: Bearer $BROWSERBERG_API_KEY"
import { writeFile } from 'node:fs/promises';
import { Browserberg } from '@browserberg/sdk';
const bb = new Browserberg({
apiKey: process.env.BROWSERBERG_API_KEY,
baseUrl: 'https://browserberg.com',
});
await using session = await bb.sessions.create();
const bild = await session.screenshot({
url: 'https://www.beispiel.de/',
format: 'png',
fullPage: true,
consent: 'reject',
});
await writeFile('seite.png', Buffer.from(bild.base64, 'base64'));
console.log(bild.width, bild.height, bild.consentDismissed);
from browserberg import Browserberg
bb = Browserberg(api_key="...", base_url="https://browserberg.com")
with bb.sessions.create() as s:
bild = s.screenshot("https://www.beispiel.de/", format="png", full_page=True, consent="reject")
with open("seite.png", "wb") as f:
f.write(bild.bytes)
print(bild.width, bild.height, bild.consent_dismissed)
Eine Screenshot-API, die erst das Banner ablehnt
Die meisten Screenshot-Dienste liefern ein Bild vom Cookie-Banner. Gewollt war die Seite darunter, und weil das Banner das Erste ist, was jeder Besucher aus Europa sieht, muss ein ehrlicher Screenshot es beantworten, bevor er hinschaut. Browserberg-Sessions tragen einen Consent-Autopiloten, der die gängigen Consent-Tools an ihrem eigenen Markup erkennt, den Ablehnen-Knopf drückt wie ein Mensch und prüft, dass der Dialog weg ist, bevor die Seite gelesen wird. Der Screenshot-Aufruf nutzt denselben Mechanismus: consent steht standardmäßig auf reject, lässt sich auf accept setzen, wenn du die Seite so brauchst, wie ein einwilligender Besucher sie sieht, oder auf off, wenn das Banner das ist, was du dokumentierst.
Was du bekommst
Ein JPEG in wählbarer Qualität oder ein verlustfreies PNG, vom Viewport oder von der ganzen Scrollhöhe, in der Größe der Gerätevorgabe: Desktop-Breite, Tablet, Telefon. Die Antwort enthält das Bild als Base64 mit Pixelmaßen, ob es eine Ganzseitenaufnahme ist, ob ein Banner weggeklickt wurde und wie lange das Ganze gedauert hat. Ein Parameter waitMs gibt spät zeichnenden Seiten bis zu fünfzehn Sekunden Zeit zum Setzen.
Was es nicht ist
Keine Abkürzung, die HTML ohne Browser rendert: Ein echtes Chromium lädt die Seite, führt ihre Skripte aus und wendet ihre Styles an, das Bild ist also das, was ein Besucher sähe. Auch kein Crawler und kein Tarnwerkzeug; der Browser gibt sich ehrlich zu erkennen, und eine Website, die automatisierte Besucher aussperrt, sperrt auch diesen aus. Das Tool oben nimmt nur öffentliche URLs. In deiner eigenen Session funktioniert derselbe Aufruf nach einem Login, in einem Portal, auf einer Seite, zu der ein Agent gerade navigiert ist, und dort liegt der eigentliche Bedarf: Nachweis eines abgesendeten Formulars, datierte Aufnahme einer Preisseite, Bild eines Dashboards für einen Bericht.
Eine Ganzseitenaufnahme einer Seite mit endlosem Scrollen zeigt, was zum Zeitpunkt der Aufnahme geladen war, nicht alles, was die Seite je zeigen könnte. Fixierte Kopfzeilen erscheinen im Ganzseitenbild oben, weil der Browser sie dort zeichnet. Animationen werden mitten im Frame erwischt. Nichts davon ist ein Fehler, der zu beheben wäre; es ist das, was die Seite getan hat.
Kosten und was übrig bleibt
Ein Screenshot aus dem Tool oben ist eine gewöhnliche abgerechnete Browser-Session einer dafür eingerichteten Organisation, begrenzt je Besucher und je Tag. Über die API ist es ein Aufruf auf deiner eigenen Session und zählt wie jeder andere auf deine Browserstunden. URL und Bild werden dir zurückgegeben und dann verworfen; das Nutzungsjournal hält Zeitpunkt und Größe fest, wie in der Datenschutzerklärung beschrieben. Die fotografierte Seite wird nicht gespeichert und für nichts anderes verwendet.
Fragen zur Screenshot-API
Wie mache ich einen Screenshot einer Website per URL?
URL oben eingeben und den Knopf drücken. Für die Automatisierung ist es ein POST auf den Screenshot-Endpunkt einer Session, wie in den Codebeispielen gezeigt.
Warum ist kein Cookie-Banner im Bild?
Der Consent-Autopilot hat es vor der Aufnahme abgelehnt. Willst du das Banner im Bild, setz consent auf off; willst du die Seite wie ein einwilligender Besucher, setz es auf accept.
Kann ich eine Seite hinter einem Login aufnehmen?
Nicht mit dem Tool hier. In deiner eigenen Session meldest du dich mit Zugangsdaten aus dem Tresor oder per Agentenaufgabe an und rufst screenshot ohne URL auf, um die Seite aufzunehmen, auf der die Session gerade ist.
Wo läuft der Browser?
In einem Container auf Hardware in der EU. Das Bild entsteht dort und geht an dich zurück; aufbewahrt wird es nicht.
Wie groß kann ein Ganzseiten-Screenshot werden?
So hoch wie die Scrollhöhe der Seite bei der gewählten Breite. Sehr lange Seiten ergeben sehr große PNGs; JPEG in der Standardqualität ist deutlich kleiner und als Nachweis meist ausreichend.
Gibt es dafür ein MCP-Tool?
Ja, browser_screenshot auf dem gehosteten MCP-Endpunkt. Ein Agent in Claude oder einem anderen MCP-Client kann dasselbe Bild als Teil einer Aufgabe aufnehmen.
Was passiert, wenn du den Knopf drückst
-
Ein frischer Browser öffnet die Seite
Ein Container auf EU-Hardware mit sauberem Profil, ohne Cookies von irgendjemand anderem, und einem Viewport in der gewählten Gerätevorgabe.
-
Das Banner wird beantwortet
Der Consent-Autopilot erkennt das CMP und drückt dessen Ablehnen-Knopf oder weicht auf eine generische Ablehnen-Heuristik aus. Passt nichts, bleibt das Banner im Bild, und das Ergebnis sagt consentDismissed: false.
-
Die Seite setzt sich, das Bild entsteht
Nach dem Laden und einer optionalen Wartezeit für spät zeichnende Seiten wird der Viewport oder die ganze Scrollhöhe als JPEG oder PNG aufgenommen.
-
Bild und Aufruf kommen zurück
Vorschau, Download und die exakte Anfrage, die das Bild erzeugt hat, sodass der Weg vom Tool in deinen eigenen Code ein Kopieren und Einfügen ist.
Parameter des Screenshot-Aufrufs
| url | Die zu ladende Seite; optional in einer Session, die schon auf einer Seite ist |
|---|---|
| format | jpeg (Standard) oder png |
| quality | 1 bis 100, nur JPEG, Standard 60 |
| fullPage | false für den Viewport (Standard), true für die ganze Scrollhöhe |
| consent | reject (Standard), accept, oder off, um das Banner zu lassen, wie es ist |
| waitMs | Zusätzliche Wartezeit nach dem Laden, 0 bis 15000 Millisekunden |
| Antwort | contentType, base64, width, height, fullPage, consentDismissed, durationMs |
Stand: 2026-09-08
Passende Tools und Anleitungen
- Consent-Autopilot Wie das Banner vor der Aufnahme erkannt und abgelehnt wird
- Cookie-Check Welches CMP die Seite fährt und was vor der Wahl lädt
- Referenz Session-Verben Der Screenshot-Endpunkt neben observe, act und extract
- MCP-Server browser_screenshot und die anderen Tools, die ein Agent aufrufen kann
Dasselbe Bild von innerhalb eines Logins
Fünf Browserstunden, keine Karte. Mit Zugangsdaten aus dem Tresor anmelden und die Seite aufnehmen, die sonst niemand erreicht.