Allgemein
Georgi Miloradowitsch
Forscher, Texter und Usecase-Interviewer
28. Februar 2025
Eine Low-Code-Plattform, die die Einfachheit von No-Code mit der Leistung von Full-Code verbindet 🚀
Jetzt kostenlos starten
28. Februar 2025
8
min lesen

Browserloses Chrome: Ein leistungsstarkes Tool zur Browserautomatisierung

Georgi Miloradowitsch
Forscher, Texter und Usecase-Interviewer
Inhaltsverzeichnis

Browserloses Chrome ist ein Cloud-basierter Dienst, der die Browserautomatisierung vereinfacht, indem er Chrome ohne Headless-Funktion für Aufgaben wie Web Scraping, PDF-Generierung und Tests ausführt. Es macht lokale Browser-Setups überflüssig und verwaltet Browserabstürze, Sitzungsisolierung und Ressourcenoptimierung automatisch. Zu den wichtigsten Vorteilen gehören:

  • Keine lokale Einrichtung: Verwenden Sie Docker oder Cloud-Bereitstellung, um schnell loszulegen.
  • Schnelle Leistungs: Screenshots in ~1 Sekunde, PDFs in ~2 Sekunden.
  • Umgehung der Bot-Erkennung: Überwindet Blocker wie Cloudflare für eine zuverlässige Automatisierung.
  • Ressourceneffizienz: Reduziert die Proxy- und virtuelle Maschinennutzung um bis zu 90 %.

Quick Setup: Integration mit beliebten Bibliotheken wie Puppenspieler, Dramatiker, oder auch Selen mithilfe einfacher Verbindungsmethoden. Browserless bietet auch APIs für Web Scraping, JavaScript-Rendering und benutzerdefinierte Automatisierungs-Workflows.

Schneller Vergleich der Funktionen

Merkmal Vorteile Beispiel
Sitzungsbereinigung Entfernt inaktive Sitzungen automatisch Sorgt für optimale Ressourcen
Prävention der Bot-Erkennung Umgeht Blocker wie Cloudflare Zuverlässig für Schabearbeiten
Multitasking-Verarbeitung Behandelt gleichzeitige Anfragen effektiv Mehr als 2 Mio. Sitzungen werden wöchentlich verarbeitet
Einsatzbereite APIs Vereinfacht Automatisierungsaufgaben JSON-Datenextraktion, PDFs

Chrome ohne Browser ist ideal für Entwickler und Unternehmen, die die Automatisierung optimieren möchten, ohne eine komplexe Infrastruktur verwalten zu müssen.

Einrichtungsanleitung (EN)

So installieren Sie

Um mit Browserless Chrome zu beginnen, können Sie zwischen zwei Installationsoptionen wählen: einer lokalen Einrichtung mit Docker oder einer Cloud-Bereitstellung. Für eine lokale Docker-Einrichtung verwenden Sie den folgenden Befehl:

docker run -p 3000:3000 ghcr.io/browserless/chromium

Dieser Befehl ruft das neueste Image ab und macht es über Port 3000 zugänglich. Er funktioniert nahtlos unter Windows, macOS und Linux.

Erstkonfiguration

Chrome ohne Browser enthält mehrere integrierte Funktionen, die den Einrichtungsprozess vereinfachen:

Merkmal Voreinstellung Sinn
Sitzungsbereinigung 30 Sekunden Entfernt inaktive Sitzungen automatisch
Gesundheitschecks Aktiviert Gewährleistet die Systemstabilität
Anfragewarteschlange konfigurierbare Verwaltet mehrere gleichzeitige Verbindungen
Ressourcengrenzen Einstellbar Steuert die Speicher- und CPU-Auslastung

Sie können die Umgebung anpassen, indem Sie diese Variablen festlegen:

MAX_CONCURRENT_SESSIONS=10
CONNECTION_TIMEOUT=30000
MAX_QUEUE_LENGTH=100

Nach der Konfiguration können Sie mit Ihrer bevorzugten Integrationsmethode eine Verbindung zu Browserless herstellen.

Herstellen Ihrer ersten Verbindung

Abhängig von der von Ihnen verwendeten Bibliothek können Sie Ihre erste Verbindung folgendermaßen herstellen:

  • Puppenspieler-Verbindung
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
  • Dramatiker-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 handhaben die Sitzungsisolierung, verwalten gleichzeitige Anfragen und stellen nach Abstürzen automatisch wieder her. Sie bereinigen außerdem inaktive Sitzungen nach 30 Sekunden, indem sie für jede neue Sitzung eine neue Browserinstanz starten.

Haupteigenschaften

Grundlagen des Headless-Browsers

Browserless Chrome arbeitet ohne grafische Oberfläche und läuft im Headless-Modus. Es startet automatisch neue Browserinstanzen für eingehende Anfragen und sorgt so für eine effiziente Ressourcennutzung.

Hier ist ein kurzer Überblick über die wichtigsten Funktionen:

Merkmal Beschreibung Vorteile
Sitzungsisolierung Unabhängige Browsersitzungen Senkt die Infrastrukturkosten
Automatische Wiederherstellung Neustart nach Abstürzen Hält den Betrieb aufrecht
Ressourcenoptimierung Effiziente Nutzung von Speicher und CPU Steigert die Gesamtleistung

Über diese wesentlichen Funktionen hinaus ist Browserless darauf ausgelegt, mehrere Aufgaben problemlos gleichzeitig zu bewältigen.

Multitasking-Verarbeitung

Mit über 2 Millionen abgewickelten Sitzungen hat Browserless Chrome Millionen von Screenshots, PDFs und Testergebnissen generiert. Sein intelligentes Warteschlangenmanagementsystem stellt sicher, dass Anfragen ohne Überlastung der Ressourcen verarbeitet werden und so eine gleichbleibende Leistung gewährleistet wird. Dies hat sich als besonders nützlich für Unternehmen wie Samsara, das von einem internen Testdienst auf Browserless umgestiegen ist, um eine bessere Skalierbarkeit zu erreichen.

„Browserless bietet eine Reihe von Funktionen, die die Automatisierung von Webbrowser-Aufgaben vereinfachen und beschleunigen. Mit seiner robusten API und der Fähigkeit, parallele Vorgänge zu verarbeiten, ist Browserless ein Vorreiter im Automatisierungsbereich.“ – Elest.io

Browserless ist nicht nur hervorragend für Multitasking geeignet, es vereinfacht auch Automatisierungs-Workflows mit gebrauchsfertigen APIs.

Sofort einsatzbereite API-Funktionen

Browserless bietet auf allgemeine Automatisierungsanforderungen zugeschnittene APIs, die die Kernfunktionalität erweitern:

  • Web-Scraping-API: Extrahiert strukturierte JSON-Daten aus Webseitenelementen.
  • API entsperren: Ruft HTML-Inhalte nach dem Ausführen von JavaScript ab.
  • Funktions-API: Führt benutzerdefinierten Puppeteer-Code mit ESM-Modulimporten aus.

Diese APIs haben in der Praxis Ergebnisse geliefert:

„Wir begannen, die Headless-Browser eines anderen Scraping-Unternehmens zu verwenden, um Puppeteer-Skripte auszuführen. Aufgrund langsamer Abrufzeiten war jedoch ein Vercel-Upgrade erforderlich und die Proxys liefen nicht richtig. Ich fand Browserless und hatte unseren Puppeteer-Code innerhalb einer Stunde zum Laufen gebracht. Die Scrapes sind jetzt 5x schneller und kosten nur noch ein Drittel des Preises, und der Support war ausgezeichnet.“ – Nicklas Smit, Full-Stack-Entwickler, Takeoff Copenhagen

„Wir haben ein Scraping-Tool entwickelt, um unsere Chatbots anhand öffentlicher Website-Daten zu trainieren, aber aufgrund von Randfällen und Bot-Erkennung wurde es schnell kompliziert. Ich habe Browserless gefunden und einen Tag für die Integration eingeplant, aber es hat nur ein paar Stunden gedauert. Ich musste kein Experte für die Verwaltung von Proxy-Servern oder virtuellen Computern werden, also kann ich mich jetzt auf die Kernbereiche des Geschäfts konzentrieren.“ – Mike Heap, Gründer von My AskAI

Was ist browserlos?

sbb-itb-23997f1

Leitfaden zur Bibliotheksintegration

Browserless Chrome arbeitet nahtlos mit den wichtigsten Automatisierungsbibliotheken zusammen und bietet Leistung und Zuverlässigkeit. So können Sie es in einige der beliebtesten Tools integrieren.

Puppenspieler Integration

Puppenspieler

Der Wechsel zu Browserless in Puppeteer ist ganz einfach - ersetzen Sie einfach puppeteer.launch() mit puppeteer.connect() .

Setup-Typ Codestruktur Vorteile
Traditioneller Puppenspieler Verwendung puppeteer.launch() Verbraucht lokale Ressourcen
Browserloser Puppenspieler Verwendung puppeteer.connect() Optimiert für die Cloud
Verbesserter Browserless Benutzerdefinierte Startargumente Erweiterte Konfigurationen

Sie können auch benutzerdefinierte 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 gleichzeitig einfach.

Dramatiker Integration

Dramatiker

Browserlos funktioniert es mit Playwright genauso gut. Hier ist ein Beispiel für die 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 ein konsistentes Erlebnis:

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 Arbeitsabläufe.

Selen Integration

Selen

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 mithilfe eines einfachen URL-Formats 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 und andere ressourcensparende Funktionen. Schließen Sie Browserinstanzen nach der Verwendung immer, um Speicherlecks zu vermeiden und die Ressourcennutzung zu optimieren.

Leistungstipps

Bei der Arbeit mit Chrome ohne Browser ist die Leistungsverwaltung der Schlüssel zur Aufrechterhaltung der Effizienz. Da die Plattform wöchentlich fast 5 Millionen Headless-Sitzungen verarbeitet, ist eine sorgfältige Ressourcen- und Sicherheitsverwaltung für einen reibungslosen Betrieb in dieser Größenordnung unerlässlich.

Ressourcenmanagement

Die effiziente Verwaltung von Ressourcen beginnt mit der Handhabung von Browserinstanzen. Anstatt für jede Aufgabe eine neue Instanz zu erstellen, können Sie vorhandene Instanzen wiederverwenden, um den Aufwand für das Starten neuer Sitzungen zu verringern:

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 effektive Taktik ist das Blockieren unnötiger Ressourcen, um den Ressourcenverbrauch zu reduzieren. Hier ist eine Aufschlüsselung:

Ressourcentyp Auswirkungen auf die Leistung Empfohlene Maßnahme
Bilder Verbraucht viel Bandbreite Blockieren mit page.setRequestInterception()
CSS-Dateien Verwendet zusätzlichen Speicher Deaktivieren, sofern es nicht kritisch für das Layout ist
Schriftarten Verlangsamt das Laden Externe Schriftartanforderungen blockieren

Beispielsweise meldete Browserless.io im September 2024 eine Leistungsverbesserung, bei der die Blockierung dieser Ressourcen die Ausführungszeit von 2,114 ms auf 1,676 ms reduzierte.

Umgang mit hohem Datenverkehr

Sobald die Ressourcen optimiert sind, besteht der nächste Schritt darin, hohen Datenverkehr effektiv zu verwalten. Horizontale Skalierung ist zuverlässiger als die Abhängigkeit von wenigen großen Instanzen.

„Chrome ist wirklich wirklich kann die gesamten Systemressourcen gut nutzen und verwendet für die meisten Dinge gerne gleiche Teile von CPU und Speicher"

Um große Anforderungen zu bewältigen, sollten Sie die folgenden Strategien in Betracht ziehen:

  • Verwende Nginx zur Lastverteilung auf mehrere kleinere browserlose Instanzen.
  • Aktivieren Sie Integritätsprüfungen vor der Anforderung mit PRE_REQUEST_HEALTH_CHECK=true und begrenzen Sie gleichzeitige Sitzungen mit MAX_CONCURRENT_SESSIONS=10.
  • Stellen Sie eine ordnungsgemäße Prozessbeendigung sicher, um das Verbleiben von „Zombie“-Prozessen zu vermeiden.

„Unabhängig davon, wo und wie Sie Ihre Headless-Sitzungen durchführen, ist es wichtig, töten Chrom mit dem Feuer tausender Sonnen"

Sicherheitseinstellung

Eine sichere Einrichtung schützt nicht nur Ihre Daten, sondern gewährleistet auch eine gleichbleibende Leistung bei hoher Belastung. So sichern Sie Ihre Bereitstellung:

  • Speichern Sie API-Schlüssel als gehashte Werte in sicheren Umgebungen.
  • Verwenden Sie IP-Einschränkungen, um den Zugriff zu kontrollieren.
  • Aktivieren Sie die rollenbasierte Zugriffsverwaltung.
  • Wenden Sie eine Ratenbegrenzung auf API-Endpunkte an.

Legen Sie für Docker-Bereitstellungen Ressourcenlimits fest, um eine Überlastung zu vermeiden:

docker run -e MAX_CONCURRENT_SESSIONS=10 \
    -e CONNECTION_TIMEOUT=30000 \
    --memory=2g \
    --cpu-shares=1024 \
    browserless/chrome

Für den Umgang mit nicht vertrauenswürdigem Code verwenden Sie die vm2 Modul, um isolierte Umgebungen zu erstellen. Dieser Ansatz verhindert CPU-intensive Angriffe. Seit dem 5. März 2018 verwendet Browserless.io dumb-init innerhalb von Docker-Containern, um die Prozessbeendigung effektiv zu verwalten.

Zusammenfassung

Browserloses Chrome vereinfacht die Automatisierung, indem es die schweren Infrastrukturaufgaben übernimmt, die früher einen erheblichen Teil der Entwicklerzeit in Anspruch nahmen – etwa 60 %. Durch die Isolierung von Chrome von den Kerndiensten wird eine bessere Lastverteilung, Skalierbarkeit und Fehlerverwaltung gewährleistet. Ein bemerkenswertes Beispiel ist Samsara, das seine Puppeteer-basierten Tests überarbeitet hat, indem es den Aufwand für die Wartung einer speziellen Infrastruktur beseitigt hat. Dadurch konnten sich die Ingenieure mehr auf die Entwicklung ihres Kernprodukts konzentrieren, anstatt sich um Backend-Operationen kümmern zu müssen.

Hier ist eine Momentaufnahme dessen, was Chrome ohne Browser zu einem bahnbrechenden Neuerer macht:

Merkmal Auswirkungen auf das Geschäft
Infrastrukturtrennung Verhindert, dass Chrome-bezogene Probleme den gesamten Dienst stören
Integrierter Lastenausgleich Ermöglicht müheloses Skalieren ohne zusätzliche Einrichtung
Vermeidung von Bot-Erkennung Steigert die Erfolgsquote bei Web-Automatisierungsaufgaben
REST API Integration Erleichtert Aufgaben wie die PDF-Erstellung und die Generierung von Screenshots erheblich

Diese Funktionen machen die Umstellung auf Chrome ohne Browser zu einer praktischen und effizienten Wahl für Automatisierungsanforderungen.

Erste Schritte

Möchten Sie Browserless Chrome in Ihren Workflow integrieren? So können Sie loslegen:

  1. Wählen Sie eine Integrationsmethode: Bevor Sie loslegen, testen Sie die Funktionalität mit dem Online-Debugger. Entscheiden Sie sich dann basierend auf Ihren aktuellen Tools zwischen Puppeteer, Playwright oder Selenium.
  2. Aktualisieren Sie Ihr Setup: Ersetzen Sie Ihren lokalen Puppeteer-Start durch eine Verbindung zu Browserless. Aktualisieren Sie einfach Ihren Code, um puppeteer.connect() mit Ihrem browserlosen Endpunkt.
  3. Verfolgen Sie die Leistung: Verwenden Sie die integrierten Tools von Browserless wie Integritätschecks und Warteschlangenmetriken, um die Leistung im Auge zu behalten.

Ähnliche Blog-Beiträge

Verwandte Blogs

Anwendungsfall

Unterstützt von