

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, Dramatikeroder 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 [3]Es funktioniert nahtlos unter Windows, macOS und Linux.
Chrome ohne Browser enthÀlt mehrere integrierte Funktionen, die den Einrichtungsprozess vereinfachen:
Merkmal | Voreinstellung | Zweck |
---|---|---|
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 erholen sich automatisch von AbstĂŒrzen. Sie bereinigen auch inaktive Sitzungen nach 30 Sekunden, indem sie fĂŒr jede neue Sitzung eine neue Browserinstanz starten. [4].
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 [5]. Sein intelligentes Warteschlangenmanagementsystem stellt sicher, dass Anfragen ohne Ăberlastung der Ressourcen verarbeitet werden und die Leistung konstant bleibt. 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 [2]
â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 [2]
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()
[6].
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 Browserless Chrome ist die Leistungsverwaltung der SchlĂŒssel zur Aufrechterhaltung der Effizienz. Da die Plattform wöchentlich fast 5 Millionen Headless-Sitzungen abwickelt, [8]FĂŒr einen reibungslosen Betrieb dieser GröĂenordnung ist ein sorgfĂ€ltiges Ressourcen- und Sicherheitsmanagement 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 |
So 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 [10].
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" [8]
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" [8]
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 [9].
Browserloses Chrome vereinfacht die Automatisierung, indem es die schweren Infrastrukturaufgaben ĂŒbernimmt, die frĂŒher einen erheblichen Teil der Zeit der Entwickler 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 zu kĂŒmmern [1].
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 [11] |
Integrierter Lastenausgleich | Ermöglicht mĂŒheloses Skalieren ohne zusĂ€tzliche Einrichtung |
Vermeidung von Bot-Erkennung | Steigert die Erfolgsquote bei Web-Automatisierungsaufgaben [1] |
REST API Integration | Erleichtert Aufgaben wie die PDF-Erstellung und die Generierung von Screenshots erheblich [1] |
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.