Browserless Chrome ist ein cloudbasierter Service, der die Browser-Automatisierung vereinfacht, indem er Headless Chrome für Aufgaben wie Web Scraping, PDF-Erstellung und Tests ausführt. Lokale Browser-Setups werden überflüssig, während Browser-Abstürze, Session-Isolierung und Ressourcenoptimierung automatisch verwaltet werden. Zu den wichtigsten Vorteilen gehören:
- Kein lokales Setup: Nutzen Sie Docker oder eine Cloud-Bereitstellung, um schnell zu starten.
- Hohe Performance: Screenshots in ca. 1 Sekunde, PDFs in ca. 2 Sekunden.
- Umgehung der Bot-Erkennung: Überwindet Blockaden wie Cloudflare für zuverlässige Automatisierung.
- Ressourceneffizienz: Reduziert den Einsatz von Proxys und virtuellen Maschinen um bis zu 90 %.
Schnelles Setup: Integrieren Sie beliebte Bibliotheken wie Puppeteer, Playwright oder Selenium mit einfachen Verbindungsmethoden. Browserless bietet außerdem APIs für Web Scraping, JavaScript-Rendering und individuelle Automatisierungs-Workflows.
Funktionsvergleich auf einen Blick
| Funktion | Vorteil | Beispiel |
|---|---|---|
| Session-Bereinigung | Entfernt inaktive Sessions automatisch | Hält Ressourcen optimiert |
| Vermeidung der Bot-Erkennung | Umgeht Blockaden wie Cloudflare | Zuverlässig für Scraping-Aufgaben |
| Verarbeitung mehrerer Aufgaben | Bearbeitet parallele Anfragen effektiv | Mehr als 2 Mio. Sessions pro Woche verarbeitet |
| Einsatzbereite APIs | Vereinfacht Automatisierungsaufgaben | JSON-Datenextraktion, PDFs |
Browserless Chrome ist ideal für Entwickler und Unternehmen, die ihre Automatisierung optimieren möchten, ohne komplexe Infrastruktur verwalten zu müssen.
Einrichtungsanleitung
Installation
Für den Einstieg mit Browserless Chrome können Sie zwischen zwei Installationsoptionen wählen: einem lokalen Setup mit Docker oder einer Cloud-Bereitstellung. Verwenden Sie für ein lokales Docker-Setup den folgenden Befehl:
docker run -p 3000:3000 ghcr.io/browserless/chromium
Dieser Befehl lädt das neueste Image herunter und macht es über Port 3000 zugänglich [3]. Er funktioniert nahtlos unter Windows, macOS und Linux.
Erstkonfiguration
Browserless Chrome umfasst mehrere integrierte Funktionen, die den Einrichtungsprozess vereinfachen:
| Funktion | Standardeinstellung | Zweck |
|---|---|---|
| Session-Bereinigung | 30 Sekunden | Entfernt inaktive Sessions automatisch |
| Zustandsprüfungen | Aktiviert | Gewährleistet Systemstabilität |
| Anfragenwarteschlange | Konfigurierbar | Verwaltet mehrere parallele Verbindungen |
| Ressourcenlimits | Anpassbar | Steuert Speicher- und CPU-Auslastung |
Sie können die Umgebung durch das Festlegen dieser Variablen anpassen:
MAX_CONCURRENT_SESSIONS=10
CONNECTION_TIMEOUT=30000
MAX_QUEUE_LENGTH=100
Nach der Konfiguration können Sie sich mit Ihrer bevorzugten Integrationsmethode mit Browserless verbinden.
Ihre erste Verbindung herstellen
Je nach verwendeter Bibliothek können Sie Ihre erste Verbindung wie folgt herstellen:
- Puppeteer-Verbindung
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
- Playwright-Integration
const browser = await playwright.firefox.connect(
`wss://production-sfo.browserless.io/firefox/playwright?token=${TOKEN}&proxy=residential`
);
- REST-API-Zugriff
curl -X POST https://chrome.browserless.io/content
-H 'Content-Type: application/json'
-H 'Authorization: Basic YOUR-BASE64-TOKEN'
-d '{ "url": "https://example.com/"}'
Browserless V2 verbessert die Zuverlässigkeit mit zwei regionalen Endpunkten: der US-Westküste (production-sfo.browserless.io) und Europa (production-lon.browserless.io). Diese Endpunkte übernehmen die Session-Isolierung, verwalten parallele Anfragen und stellen sich nach Abstürzen automatisch wieder her. Außerdem bereinigen sie inaktive Sessions nach 30 Sekunden, indem sie für jede neue Session eine neue Browser-Instanz starten [4].
Hauptfunktionen
Grundlagen des Headless Browsers
Browserless Chrome arbeitet ohne grafische Benutzeroberfläche im Headless-Modus. Für eingehende Anfragen startet es automatisch neue Browser-Instanzen und sorgt so für eine effiziente Ressourcennutzung.
Hier ist ein kurzer Überblick über die wichtigsten Funktionen:
| Funktion | Beschreibung | Vorteil |
|---|---|---|
| Session-Isolierung | Unabhängige Browser-Sessions | Senkt Infrastrukturkosten |
| Automatische Wiederherstellung | Startet nach Abstürzen neu | Hält Prozesse am Laufen |
| Ressourcenoptimierung | Effiziente Nutzung von Speicher und CPU | Steigert die Gesamtperformance |
Über diese Grundlagen hinaus ist Browserless darauf ausgelegt, mehrere Aufgaben gleichzeitig problemlos zu bewältigen.
Verarbeitung mehrerer Aufgaben
Mit über 2 Millionen verarbeiteten Sessions hat Browserless Chrome Millionen von Screenshots, PDFs und Testergebnissen erstellt [5]. Das intelligente Warteschlangenmanagement stellt sicher, dass Anfragen verarbeitet werden, ohne Ressourcen zu überlasten, und gewährleistet eine konstante Performance. Dies hat sich insbesondere für Unternehmen wie Samsara als nützlich erwiesen, das für bessere Skalierbarkeit von einem intern entwickelten Testservice zu Browserless wechselte.
„Browserless bietet eine Reihe von Funktionen, die Webbrowser-Automatisierungsaufgaben vereinfachen und beschleunigen. Mit seiner robusten API und der Fähigkeit, parallele Prozesse zu verarbeiten, hebt sich Browserless als führende Lösung im Automatisierungsbereich hervor.“ – Elest.io
Browserless überzeugt nicht nur bei der parallelen Verarbeitung von Aufgaben, sondern vereinfacht Automatisierungs-Workflows auch durch einsatzbereite APIs.
Einsatzbereite API-Funktionen
Browserless bietet APIs für häufige Automatisierungsanforderungen, die seine Kernfunktionen erweitern:
- Web-Scraping-API: Extrahiert strukturierte JSON-Daten aus Elementen einer Webseite.
- Unblock-API: Ruft HTML-Inhalte ab, nachdem JavaScript ausgeführt wurde.
- Function-API: Führt individuellen Puppeteer-Code mit ESM-Modulimporten aus.
Diese APIs haben in der Praxis überzeugende Ergebnisse erzielt:
„Wir begannen, die Headless Browser eines anderen Scraping-Anbieters zum Ausführen von Puppeteer-Skripten zu nutzen. Aufgrund langsamer Abrufzeiten war jedoch ein Vercel-Upgrade erforderlich, und die Proxys funktionierten nicht korrekt. Ich fand Browserless und unser Puppeteer-Code lief innerhalb einer Stunde. Die Scrapes sind jetzt 5-mal schneller und kosten ein Drittel, außerdem war der Support hervorragend.“ – Nicklas Smit, Full-Stack Developer, Takeoff Copenhagen [2]
„Wir haben ein Scraping-Tool entwickelt, um unsere Chatbots mit öffentlichen Websitedaten zu trainieren, doch durch Sonderfälle und Bot-Erkennung wurde es schnell kompliziert. Ich fand Browserless und plante einen ganzen Tag für die Integration ein, aber sie dauerte nur wenige Stunden. Ich musste kein Experte für die Verwaltung von Proxy-Servern oder virtuellen Computern werden und kann mich jetzt auf die Kernbereiche des Unternehmens konzentrieren.“ – Mike Heap, Founder, My AskAI [2]
Was ist browserless?
sbb-itb-23997f1
Leitfaden zur Bibliotheksintegration
Browserless Chrome funktioniert nahtlos mit führenden Automatisierungsbibliotheken und bietet Performance sowie Zuverlässigkeit. So können Sie es mit einigen der beliebtesten Tools integrieren.
Puppeteer-Integration
Der Wechsel zu Browserless mit Puppeteer ist einfach: Ersetzen Sie einfach puppeteer.launch() durch puppeteer.connect() [6].
| Setup-Typ | Codestruktur | Vorteile |
|---|---|---|
| Herkömmliches Puppeteer | Verwendet puppeteer.launch() | Verbraucht lokale Ressourcen |
| Browserless Puppeteer | Verwendet puppeteer.connect() | Für die Cloud optimiert |
| Erweitertes Browserless | Individuelle Startargumente | Erweiterte Konfigurationen |
Sie können auch individuelle Startargumente über den WebSocket-Endpunkt übergeben:
const launchArgs = JSON.stringify({
args: ['--window-size=1920,1080'],
stealth: true,
timeout: 5000
});
const browser = await puppeteer.connect({
browserWSEndpoint: `wss://production-sfo.browserless.io/?token=YOUR_API_TOKEN_HERE&launch=${launchArgs}`
});
Dieses Setup unterstützt erweiterte Konfigurationen und bleibt dabei einfach.
Playwright-Integration
Browserless funktioniert ebenso gut mit Playwright. Hier ist ein Beispiel für eine Verbindung mit Firefox:
// Firefox implementation with Playwright Protocol
const browser = await playwright.firefox.connect(
'wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE'
);
Für Entwickler, die Python verwenden, gewährleistet Browserless eine einheitliche Erfahrung:
with sync_playwright() as p:
browser = p.firefox.connect('wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE')
context = browser.new_context()
Diese sprachübergreifende Kompatibilität erleichtert die Integration von Browserless in verschiedene Workflows.
Selenium-Integration
Verwenden Sie für Selenium die folgende Ruby-Konfiguration, um eine Verbindung mit Browserless herzustellen:
caps = Selenium::WebDriver::Remote::Capabilities.chrome("goog:chromeOptions" => {
"args" => [
"--disable-dev-shm-usage",
"--disable-extensions",
"--headless",
"--no-sandbox"
]
})
Sie können die WebDriver-Verbindung mit einem einfachen URL-Format herstellen:
driver = Selenium::WebDriver.for :remote,
url: "https://[email protected]/webdriver",
desired_capabilities: caps
Dieses Setup gewährleistet einen sicheren und effizienten Betrieb und nutzt Sandboxing sowie weitere ressourcenschonende Funktionen. Schließen Sie Browser-Instanzen nach der Nutzung immer, um Speicherlecks zu vermeiden und die Ressourcennutzung zu optimieren.
Performance-Tipps
Bei der Arbeit mit Browserless Chrome ist Performance-Management entscheidend für eine hohe Effizienz. Da die Plattform wöchentlich fast 5 Millionen Headless-Sessions verarbeitet [8], sind ein sorgfältiges Ressourcen- und Sicherheitsmanagement für reibungslose Abläufe in diesem Umfang unerlässlich.
Ressourcenmanagement
Effizientes Ressourcenmanagement beginnt mit dem Umgang mit Browser-Instanzen. Statt für jede Aufgabe eine neue Instanz zu erstellen, sollten Sie vorhandene Instanzen wiederverwenden, um den Aufwand für das Starten neuer Sessions zu reduzieren:
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-TOKEN'
});
// Reuse the instance by disconnecting instead of closing
await browser.disconnect();
Eine weitere wirksame Maßnahme besteht darin, unnötige Assets zu blockieren, um den Ressourcenverbrauch zu senken. Hier ist eine Übersicht:
| Ressourcentyp | Auswirkung auf die Performance | Empfohlene Maßnahme |
|---|---|---|
| Bilder | Verbrauchen hohe Bandbreite | Mit page.setRequestInterception() blockieren |
| CSS-Dateien | Benötigen zusätzlichen Speicher | Deaktivieren, sofern nicht entscheidend für das Layout |
| Schriftarten | Verlangsamen das Laden | Externe Schriftanfragen blockieren |
Browserless.io meldete beispielsweise im September 2024 eine Performance-Verbesserung: Durch das Blockieren dieser Ressourcen verringerte sich die Ausführungszeit von 2.114 ms auf 1.676 ms [10].
Umgang mit hohem Traffic
Sobald Ressourcen optimiert sind, besteht der nächste Schritt darin, hohen Traffic effektiv zu verwalten. Horizontale Skalierung ist zuverlässiger als die Abhängigkeit von wenigen großen Instanzen.
„Chrome ist wirklich, wirklich gut darin, die gesamten Systemressourcen zu nutzen, und verwendet für die meisten Aufgaben gerne zu gleichen Teilen CPU und Speicher.“ [8]
Für Anforderungen mit hohem Volumen sollten Sie diese Strategien berücksichtigen:
- Verwenden Sie Nginx für Load Balancing über mehrere kleinere Browserless-Instanzen.
- Aktivieren Sie Zustandsprüfungen vor Anfragen mit
PRE_REQUEST_HEALTH_CHECK=trueund begrenzen Sie parallele Sessions mitMAX_CONCURRENT_SESSIONS=10. - Stellen Sie eine ordnungsgemäße Prozessbeendigung sicher, um verbleibende „Zombie“-Prozesse zu vermeiden.
„Unabhängig davon, wo oder wie Sie Ihre Headless-Sessions ausführen: Es ist wichtig, Chrome mit dem Feuer von tausend Sonnen zu beenden.“ [8]
Sicherheitskonfiguration
Ein sicheres Setup schützt nicht nur Ihre Daten, sondern gewährleistet auch eine konstante Performance bei hoher Auslastung. So sichern Sie Ihre Bereitstellung:
- Speichern Sie API-Schlüssel als Hash-Werte in sicheren Umgebungen.
- Verwenden Sie IP-Beschränkungen zur Zugriffskontrolle.
- Aktivieren Sie rollenbasiertes Zugriffsmanagement.
- Wenden Sie Rate Limiting auf API-Endpunkte an.
Legen Sie bei Docker-Bereitstellungen Ressourcenlimits fest, um Überlastungen zu verhindern:
docker run -e MAX_CONCURRENT_SESSIONS=10 \
-e CONNECTION_TIMEOUT=30000 \
--memory=2g \
--cpu-shares=1024 \
browserless/chrome
Für die Verarbeitung von nicht vertrauenswürdigem Code verwenden Sie das Modul vm2, um isolierte Umgebungen zu erstellen. Dieser Ansatz verhindert CPU-intensive Angriffe. Seit dem 5. März 2018 verwendet Browserless.io dumb-init in Docker-Containern, um die Prozessbeendigung effektiv zu verwalten [9].
Zusammenfassung
Browserless Chrome vereinfacht die Automatisierung, indem es die aufwendigen Infrastrukturaufgaben übernimmt, die früher einen erheblichen Teil der Zeit von Entwicklern beanspruchten – etwa 60 %. Durch die Isolierung von Chrome von Kernservices gewährleistet es besseres Load Balancing, Skalierbarkeit und Fehlermanagement. Ein bemerkenswertes Beispiel ist Samsara, das seine Puppeteer-basierten Tests überarbeitete und den Aufwand für die Wartung spezialisierter Infrastruktur beseitigte. Dadurch konnten sich die Ingenieure stärker auf die Entwicklung des Kernprodukts konzentrieren, statt sich um Backend-Betrieb zu kümmern [1].
Hier sehen Sie auf einen Blick, was Browserless Chrome so leistungsstark macht:
| Funktion | Geschäftlicher Nutzen |
|---|---|
| Infrastrukturtrennung | Verhindert, dass Chrome-bezogene Probleme den gesamten Service beeinträchtigen [11] |
| Integriertes Load Balancing | Ermöglicht mühelose Skalierung ohne zusätzliches Setup |
| Umgehung der Bot-Erkennung | Erhöht die Erfolgsraten bei Web-Automatisierungsaufgaben [1] |
| REST-API-Integration | Vereinfacht Aufgaben wie PDF-Erstellung und Screenshot-Generierung erheblich [1] |
Diese Funktionen machen den Wechsel zu Browserless Chrome zu einer praktischen und effizienten Wahl für Automatisierungsanforderungen.
Schritte für den Einstieg
Möchten Sie Browserless Chrome in Ihren Workflow integrieren? So können Sie starten:
- Integrationsmethode wählen: Testen Sie die Funktionalität zunächst mit dem Online-Debugger. Entscheiden Sie sich dann je nach Ihren aktuellen Tools für Puppeteer, Playwright oder Selenium [7].
- Ihr Setup aktualisieren: Ersetzen Sie den lokalen Puppeteer-Start durch eine Verbindung zu Browserless. Aktualisieren Sie einfach Ihren Code, sodass
puppeteer.connect()mit Ihrem Browserless-Endpunkt verwendet wird. - Performance überwachen: Nutzen Sie die integrierten Tools von Browserless wie Zustandsprüfungen und Warteschlangenmetriken, um die Performance im Blick zu behalten [1].


