Troque launch() por uma linha de conexão, e seu script Playwright ou Puppeteer roda no Gologin Cloud Browser do jeito que está. Nada de Chrome ou Docker para atualizar. Adicione um proxy residencial ou móvel com uma chamada de API: cada execução volta logada, a partir do mesmo IP.
Comece grátis, sem cartão. IPs residenciais incluídos.
A linha de conexão é a única parte do Gologin; o resto é Playwright ou Puppeteer puro. Cada aba abaixo rodou exatamente como mostrado no Gologin Cloud Browser.
Cadastre-se com o Google e copie sua chave no painel. Grátis, sem cartão.
Um clique no painel ou uma chamada de API. O perfil guarda o dispositivo, o IP e o login.
Instale a biblioteca e rode o script abaixo com seu token e o ID do perfil. Vai migrar seu próprio script? Troque a chamada launch() pela linha de conexão. Mais no guia de primeiros passos.
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);
});Escolha a biblioteca que sua equipe já conhece. O navegador na nuvem e o endereço de conexão são os mesmos para os dois.
Da Microsoft, para Node.js, Python, Java e .NET. Espera pelos elementos sozinho e vem com seu próprio executor de testes. No Gologin: instale playwright-core e conecte com chromium.connectOverCDP.
Da equipe do Chrome, para Node.js. Uma biblioteca menor que fala diretamente o Chrome DevTools Protocol. No Gologin: instale puppeteer-core e conecte com puppeteer.connect.
Pronto para testar sua biblioteca? Obtenha uma chave de API e siga o guia de primeiros passos.
Onde quer que o script rode hoje, a mudança é a linha de conexão. Veja o que mais você pode deixar de lado.
Abandone a imagem do navegador. Instale a biblioteca sem navegador e conecte.
Nenhuma camada de Chromium no pacote. A função abre um WebSocket.
Adicione uma fixture, como na aba Playwright Test. Os testes continuam como estão.
Troque o endereço pela linha de conexão do Gologin. Adicione um proxy com uma chamada de API.
Todos os planos rodam o mesmo navegador, com IPs residenciais incluídos. Os planos diferem em horas de navegador e sessões paralelas.
$0
Sem cartão
$4.50/ mês
Para devs solo
$8/ mês
Para equipes em crescimento
$14/ mês
Para operações críticas
Precisa de mais ao mesmo tempo? Adicione sessões paralelas a qualquer plano por $2 por mês cada, quantas precisar. O tráfego de proxy além da sua franquia custa $1/GB.
A partir de 4 sessões paralelas, com gerente de conta dedicado, SLA premium e onboarding sob medida.
Uma conta, uma rede de proxies, um ecossistema. Escolha o produto de que a tarefa precisa.
Os dois rodam no Gologin Cloud Browser com a mesma linha de conexão, então escolha o que sua equipe conhece. O Playwright cobre mais linguagens e tem seu próprio executor de testes; o Puppeteer é a biblioteca Node.js menor, da equipe do Chrome. Na sua própria máquina, o Playwright também controla Firefox e WebKit; na nuvem, os dois controlam o mesmo navegador baseado em Chromium.
O Playwright usa chromium.connectOverCDP, o Playwright para Python usa connect_over_cdp e o Puppeteer usa puppeteer.connect com browserWSEndpoint. Os três apontam para wss://cloudbrowser.gologin.com/connect com seu token e o ID do perfil. O resto do script continua igual. Vai coletar dados de páginas que carregam conforme você rola? Veja Scraping dinâmico.
Não. Instale playwright-core ou puppeteer-core, que vêm sem navegador, e conecte à nuvem. Não há versão do Chrome para fixar, nenhuma imagem Docker para reconstruir e nenhuma dependência de navegador nos seus servidores. Veja API de navegador headless.
Sim. O login fica no perfil. Conecte com o mesmo ID de perfil e abra as páginas na janela do próprio perfil, browser.contexts()[0] no Playwright, como fazem os scripts acima: a próxima execução começa logada, a partir do mesmo IP residencial. Uma página de browser.newPage() abre em uma janela nova, sem esse login. Precisa concluir uma etapa de 2FA manualmente? Veja Cloud Browser UI.
Sim. Adicione uma fixture que conecta o navegador com connectOverCDP, como na aba Playwright Test acima, e cada teste roda no Gologin Cloud Browser. Os testes e suas asserções continuam como estão, e npx playwright test os executa como antes.
Um no plano gratuito e no Professional, 2 no Business, 3 no Enterprise, a partir de 4 no Custom. Adicione mais a qualquer plano por $2 por mês cada. Cada sessão paralela é um navegador conectado.
Conecte Playwright ou Puppeteer ao Gologin Cloud Browser e rode com um IP residencial e um login que se mantém.
Comece grátis, sem cartão. IPs residenciais incluídos.