Ersetzen Sie launch() durch eine Verbindungszeile, und Ihr Playwright- oder Puppeteer-Skript läuft unverändert in Gologin Cloud Browser. Kein Chrome und kein Docker zum Aktualisieren. Fügen Sie mit einem API-Aufruf einen Residential- oder Mobilfunk-Proxy hinzu: Jeder Lauf kommt angemeldet zurück, von derselben IP.
Kostenlos starten, ohne Karte. Residential-IPs inklusive.
Die Verbindungszeile ist der einzige Gologin-Teil, der Rest ist reines Playwright oder Puppeteer. Jeder Tab unten lief genau so mit Gologin Cloud Browser.
Mit Google registrieren und den Key im Dashboard kopieren. Kostenlos, ohne Karte.
Ein Klick im Dashboard oder ein API-Aufruf. Das Profil behält das Gerät, die IP und den Login.
Installieren Sie die Bibliothek und führen Sie das Skript unten mit Ihrem Token und Ihrer Profil-ID aus. Sie ziehen Ihr eigenes Skript um? Ersetzen Sie dessen launch()-Aufruf durch die Verbindungszeile. Mehr im Einstiegsleitfaden.
npm install playwright-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node scrape.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import { chromium } from "playwright-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.contexts()[0].newPage();
await page.goto("http://quotes.toscrape.com/scroll");
await page.waitForSelector(".quote");
for (let i = 0; i < 30; i++) {
const before = await page.locator(".quote").count();
await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
try {
await page.waitForFunction(
(n) => document.querySelectorAll(".quote").length > n,
before,
{ timeout: 3000 }
);
} catch {
break;
}
}
const quotes = await page.$$eval(".quote", (els) =>
els.map((el) => ({
text: el.querySelector(".text")?.textContent,
author: el.querySelector(".author")?.textContent,
}))
);
console.log(quotes.length, quotes[0]);
await page.close();
await browser.close();npm install puppeteer-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node scrape.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import puppeteer from "puppeteer-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await puppeteer.connect({ browserWSEndpoint: endpoint });
const page = await browser.newPage();
await page.goto("http://quotes.toscrape.com/scroll");
await page.waitForSelector(".quote");
for (let i = 0; i < 30; i++) {
const before = await page.$$eval(".quote", (els) => els.length);
await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
try {
await page.waitForFunction(
(n) => document.querySelectorAll(".quote").length > n,
{ timeout: 3000 },
before
);
} catch {
break;
}
}
const quotes = await page.$$eval(".quote", (els) =>
els.map((el) => ({
text: el.querySelector(".text")?.textContent,
author: el.querySelector(".author")?.textContent,
}))
);
console.log(quotes.length, quotes[0]);
await page.close();
await browser.disconnect();pip install playwrightGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id python scrape.pywss://cloudbrowser.gologin.com/connect?token=…&profile=…import os
from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeoutError
token = os.environ["GOLOGIN_TOKEN"]
profile_id = os.environ["GOLOGIN_PROFILE_ID"]
endpoint = f"wss://cloudbrowser.gologin.com/connect?token={token}&profile={profile_id}"
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(endpoint)
page = browser.contexts[0].new_page()
page.goto("http://quotes.toscrape.com/scroll")
page.wait_for_selector(".quote")
for _ in range(30):
before = page.locator(".quote").count()
page.evaluate("window.scrollTo(0, document.body.scrollHeight)")
try:
page.wait_for_function(
"n => document.querySelectorAll('.quote').length > n",
arg=before,
timeout=3000,
)
except PlaywrightTimeoutError:
break
quotes = page.eval_on_selector_all(
".quote",
"els => els.map(el => ({text: el.querySelector('.text')?.textContent, author: el.querySelector('.author')?.textContent}))",
)
print(len(quotes), quotes[0])
page.close()
browser.close()npm install playwrightGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id npx playwright testwss://cloudbrowser.gologin.com/connect?token=…&profile=…import { chromium, expect, test as base } from "playwright/test";
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${process.env.GOLOGIN_TOKEN}&profile=${process.env.GOLOGIN_PROFILE_ID}`;
const test = base.extend({
browser: [
async ({}, use) => {
const browser = await chromium.connectOverCDP(endpoint);
await use(browser);
await browser.close();
},
{ scope: "worker" },
],
});
test("quotes load in Gologin Cloud Browser", async ({ page }) => {
await page.goto("http://quotes.toscrape.com/");
await expect(page.locator(".quote").first()).toBeVisible();
});
test("the next page loads too", async ({ page }) => {
await page.goto("http://quotes.toscrape.com/page/2/");
await expect(page.locator(".quote")).toHaveCount(10);
});Wählen Sie die Bibliothek, die Ihr Team schon kennt. Cloud-Browser und Verbindungsadresse sind für beide gleich.
Von Microsoft, für Node.js, Python, Java und .NET. Wartet selbst auf Elemente und bringt einen eigenen Test-Runner mit. Auf Gologin: playwright-core installieren und mit chromium.connectOverCDP verbinden.
Vom Chrome-Team, für Node.js. Eine kleinere Bibliothek, die direkt das Chrome DevTools Protocol spricht. Auf Gologin: puppeteer-core installieren und mit puppeteer.connect verbinden.
Bereit, Ihre Bibliothek auszuprobieren? Holen Sie sich einen API-Key und folgen Sie dem Einstiegsleitfaden.
Wo das Skript auch heute läuft, der Umzug ist die Verbindungszeile. Das hier können Sie außerdem weglassen.
Das Browser-Image fällt weg. Die Bibliothek ohne Browser installieren und verbinden.
Kein Chromium-Layer im Paket. Die Funktion öffnet einen WebSocket.
Eine Fixture hinzufügen, wie im Tab Playwright Test. Die Tests bleiben, wie sie sind.
Die Adresse gegen die Gologin-Verbindungszeile tauschen. Einen Proxy mit einem API-Aufruf hinzufügen.
Jeder Tarif nutzt denselben Browser, mit Residential-IPs inklusive. Die Tarife unterscheiden sich in Browserstunden und parallelen Sitzungen.
$0
Keine Karte nötig
$4.50/ Monat
Für einzelne Entwickler
$8/ Monat
Für wachsende Teams
$14/ Monat
Für kritische Abläufe
Mehr auf einmal nötig? Fügen Sie jedem Tarif parallele Sitzungen für je $2 im Monat hinzu, so viele Sie brauchen. Proxy-Traffic über Ihr Kontingent hinaus kostet $1/GB.
Ab 4 parallelen Sitzungen, mit eigenem Account Manager, Premium-SLA und maßgeschneidertem Onboarding.
Ein Konto, ein Proxy-Netzwerk, ein Ökosystem. Wählen Sie das Produkt, das der Job braucht.
Beide laufen auf Gologin Cloud Browser mit derselben Verbindungszeile, also wählen Sie die, die Ihr Team kennt. Playwright deckt mehr Sprachen ab und hat einen eigenen Test-Runner; Puppeteer ist die kleinere Node.js-Bibliothek vom Chrome-Team. Auf Ihrem eigenen Rechner steuert Playwright auch Firefox und WebKit; in der Cloud steuern beide denselben Chromium-basierten Browser.
Playwright nutzt chromium.connectOverCDP, Python Playwright nutzt connect_over_cdp, Puppeteer nutzt puppeteer.connect mit browserWSEndpoint. Alle drei zeigen auf wss://cloudbrowser.gologin.com/connect mit Ihrem Token und Ihrer Profil-ID. Der Rest des Skripts bleibt gleich. Sie erfassen Daten von Seiten, die beim Scrollen nachladen? Siehe Dynamisches Scraping.
Nein. Installieren Sie playwright-core oder puppeteer-core, die ohne Browser kommen, und verbinden Sie sich mit der Cloud. Es gibt keine Chrome-Version festzulegen, kein Docker-Image neu zu bauen und keine Browser-Abhängigkeiten auf Ihren Servern. Siehe Headless Browser API.
Ja. Der Login liegt im Profil. Verbinden Sie sich mit derselben Profil-ID und öffnen Sie Seiten im eigenen Fenster des Profils, browser.contexts()[0] in Playwright, wie es die Skripte oben tun: Der nächste Lauf startet angemeldet, von derselben Residential-IP. Eine Seite aus browser.newPage() öffnet in einem frischen Fenster ohne diesen Login. Müssen Sie einen 2FA-Schritt von Hand erledigen? Siehe Cloud Browser UI.
Ja. Fügen Sie eine Fixture hinzu, die den Browser mit connectOverCDP verbindet, wie im Tab Playwright Test oben, und jeder Test läuft in Gologin Cloud Browser. Die Tests und ihre Assertions bleiben, wie sie sind, und npx playwright test führt sie aus wie bisher.
Eines im kostenlosen Tarif und in Professional, 2 in Business, 3 in Enterprise, ab 4 in Custom. Zu jedem Tarif können Sie weitere für je $2 im Monat hinzufügen. Jede parallele Sitzung ist ein verbundener Browser.
Verbinden Sie Playwright oder Puppeteer mit Gologin Cloud Browser und führen Sie es mit einer Residential-IP und einem Login aus, der bleibt.
Kostenlos starten, ohne Karte. Residential-IPs inklusive.