Allgemein

Georgi Miloradowitsch
Forscher, Texter und Usecase-Interviewer
28. Februar 2025
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:
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.
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.
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.
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.
Abhängig von der von Ihnen verwendeten Bibliothek können Sie Ihre erste Verbindung folgendermaßen herstellen:
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
const browser = await playwright.firefox.connect(
`wss://production-sfo.browserless.io/firefox/playwright?token=${TOKEN}&proxy=residential`
);
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.
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.
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.
Browserless bietet auf allgemeine Automatisierungsanforderungen zugeschnittene APIs, die die Kernfunktionalität erweitern:
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
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.
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.
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.
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.
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.
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.
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:
PRE_REQUEST_HEALTH_CHECK=true
und begrenzen Sie gleichzeitige Sitzungen mit MAX_CONCURRENT_SESSIONS=10
.„Unabhängig davon, wo und wie Sie Ihre Headless-Sitzungen durchführen, ist es wichtig, töten Chrom mit dem Feuer tausender Sonnen"
Eine sichere Einrichtung schützt nicht nur Ihre Daten, sondern gewährleistet auch eine gleichbleibende Leistung bei hoher Belastung. So sichern Sie Ihre Bereitstellung:
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.
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.
Möchten Sie Browserless Chrome in Ihren Workflow integrieren? So können Sie loslegen:
puppeteer.connect()
mit Ihrem browserlosen Endpunkt.