Latenode

Browserless Chrome: uma ferramenta poderosa para automação de navegadores

Simplifique a automação de navegadores com um serviço Chrome headless baseado em nuvem que facilita a coleta de dados da web, a geração de PDFs e os testes.

10 min de leitura
Ilustração de automação de navegador Chrome headless em nuvem

Browserless Chrome é um serviço baseado em nuvem que simplifica a automação de navegadores ao executar o Chrome headless para tarefas como web scraping, geração de PDFs e testes. Ele elimina a necessidade de configurações locais do navegador e gerencia automaticamente travamentos, isolamento de sessões e otimização de recursos. Os principais benefícios incluem:

  • Sem configuração local: Use Docker ou implantação em nuvem para começar rapidamente.
  • Alto desempenho: Capturas de tela em cerca de 1 segundo e PDFs em cerca de 2 segundos.
  • Contorno da detecção de bots: Supera bloqueadores como o Cloudflare para uma automação confiável.
  • Eficiência de recursos: Reduz o uso de proxies e máquinas virtuais em até 90%.

Configuração rápida: Integre-se a bibliotecas populares como Puppeteer, Playwright ou Selenium usando métodos de conexão simples. O Browserless também oferece APIs para web scraping, renderização de JavaScript e fluxos de automação personalizados.

Comparação rápida de recursos

RecursoBenefícioExemplo
Limpeza de sessõesRemove sessões inativas automaticamenteMantém os recursos otimizados
Prevenção da detecção de botsContorna bloqueadores como o CloudflareConfiável para tarefas de scraping
Processamento de múltiplas tarefasProcessa solicitações simultâneas com eficiênciaMais de 2 milhões de sessões processadas semanalmente
APIs prontas para usoSimplifica tarefas de automaçãoExtração de dados JSON, PDFs

O Browserless Chrome é ideal para desenvolvedores e empresas que buscam otimizar a automação sem gerenciar uma infraestrutura complexa.

Guia de configuração

Como instalar

Para começar a usar o Browserless Chrome, você pode escolher entre duas opções de instalação: uma configuração local com Docker ou uma implantação em nuvem. Para uma configuração local com Docker, use o seguinte comando:

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

Esse comando baixa a imagem mais recente e a disponibiliza na porta 3000 [3]. Ele funciona perfeitamente no Windows, macOS e Linux.

Configuração inicial

O Browserless Chrome inclui vários recursos integrados para simplificar o processo de configuração:

RecursoConfiguração padrãoFinalidade
Limpeza de sessões30 segundosRemove sessões inativas automaticamente
Verificações de integridadeAtivadasGarante a estabilidade do sistema
Fila de solicitaçõesConfigurávelGerencia várias conexões simultâneas
Limites de recursosAjustáveisControla o uso de memória e CPU

Você pode personalizar o ambiente definindo estas variáveis:

MAX_CONCURRENT_SESSIONS=10
CONNECTION_TIMEOUT=30000
MAX_QUEUE_LENGTH=100

Depois da configuração, você pode se conectar ao Browserless usando seu método de integração preferido.

Fazendo sua primeira conexão

Dependendo da biblioteca que você usa, veja como estabelecer sua primeira conexão:

  • Conexão com Puppeteer
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
  • Integração com Playwright
const browser = await playwright.firefox.connect(
  `wss://production-sfo.browserless.io/firefox/playwright?token=${TOKEN}&proxy=residential`
);
  • Acesso à API REST
curl -X POST https://chrome.browserless.io/content
  -H 'Content-Type: application/json'
  -H 'Authorization: Basic YOUR-BASE64-TOKEN'
  -d '{ "url": "https://example.com/"}'

O Browserless V2 melhora a confiabilidade com dois endpoints regionais: a Costa Oeste dos EUA (production-sfo.browserless.io) e a Europa (production-lon.browserless.io). Esses endpoints processam o isolamento de sessões, gerenciam solicitações simultâneas e se recuperam automaticamente de travamentos. Eles também limpam sessões inativas após 30 segundos, iniciando uma nova instância de navegador para cada sessão [4].

Principais recursos

Fundamentos do navegador headless

O Browserless Chrome opera sem uma interface gráfica, sendo executado no modo headless. Ele inicia automaticamente novas instâncias do navegador para solicitações recebidas, garantindo o uso eficiente de recursos.

Confira uma visão geral rápida dos principais recursos:

RecursoDescriçãoBenefício
Isolamento de sessõesSessões de navegador independentesReduz os custos de infraestrutura
Recuperação automáticaReinicia após travamentosMantém as operações em execução
Otimização de recursosUso eficiente de memória e CPUMelhora o desempenho geral

Além desses recursos essenciais, o Browserless foi desenvolvido para executar várias tarefas ao mesmo tempo com facilidade.

Processamento de múltiplas tarefas

Com mais de 2 milhões de sessões processadas, o Browserless Chrome gerou milhões de capturas de tela, PDFs e resultados de testes [5]. Seu sistema inteligente de gerenciamento de filas garante que as solicitações sejam processadas sem sobrecarregar os recursos, mantendo um desempenho consistente. Isso foi especialmente útil para empresas como a Samsara, que trocou um serviço interno de testes pelo Browserless para obter melhor escalabilidade.

"O Browserless oferece uma variedade de recursos criados para simplificar e acelerar tarefas de automação de navegadores web. Com sua API robusta e capacidade de lidar com operações paralelas, o Browserless se destaca como líder no segmento de automação." – Elest.io

O Browserless não se destaca apenas na execução de múltiplas tarefas: ele também simplifica fluxos de automação com APIs prontas para uso.

Funções de API prontas para uso

O Browserless oferece APIs voltadas para necessidades comuns de automação, ampliando sua funcionalidade principal:

  • API de Web Scraping: Extrai dados JSON estruturados de elementos de páginas web.
  • API Unblock: Obtém conteúdo HTML após executar JavaScript.
  • API Function: Executa código Puppeteer personalizado com importações de módulos ESM.

Essas APIs já entregaram resultados reais:

"Começamos a usar os navegadores headless de outra empresa de scraping para executar scripts Puppeteer. Mas isso exigiu um upgrade da Vercel devido à lentidão nas buscas, e os proxies não estavam funcionando corretamente. Encontrei o Browserless e deixei nosso código Puppeteer em funcionamento em uma hora. Agora, os scrapes são 5 vezes mais rápidos e custam um terço do preço, além de o suporte ter sido excelente." – Nicklas Smit, Desenvolvedor Full-Stack, Takeoff Copenhagen [2]

"Criamos uma ferramenta de scraping para treinar nossos chatbots com dados públicos de sites, mas o processo ficou rapidamente complicado devido a casos extremos e à detecção de bots. Encontrei o Browserless e reservei um dia para a integração, mas ela levou apenas algumas horas. Não precisei me tornar especialista em gerenciamento de servidores proxy ou computadores virtuais, então agora posso continuar focado nas partes principais do negócio." – Mike Heap, Fundador, My AskAI [2]

O que é Browserless?

sbb-itb-23997f1

Guia de integração com bibliotecas

O Browserless Chrome funciona perfeitamente com as principais bibliotecas de automação, oferecendo desempenho e confiabilidade. Veja como integrá-lo a algumas das ferramentas mais populares.

Integração com Puppeteer

Migrar para o Browserless no Puppeteer é simples: basta substituir puppeteer.launch() por puppeteer.connect() [6].

Tipo de configuraçãoEstrutura de códigoVantagens
Puppeteer tradicionalUsa puppeteer.launch()Consome recursos locais
Puppeteer com BrowserlessUsa puppeteer.connect()Otimizado para a nuvem
Browserless aprimoradoArgumentos de inicialização personalizadosConfigurações avançadas

Você também pode passar argumentos de inicialização personalizados pelo endpoint WebSocket:

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}`
});

Essa configuração oferece suporte a configurações avançadas sem perder a simplicidade.

Integração com Playwright

O Browserless funciona igualmente bem com o Playwright. Veja um exemplo de conexão usando o Firefox:

// Firefox implementation with Playwright Protocol
const browser = await playwright.firefox.connect(
  'wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE'
);

Para desenvolvedores que usam Python, o Browserless garante uma experiência consistente:

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()

Essa compatibilidade entre linguagens facilita a integração do Browserless a vários fluxos.

Integração com Selenium

Para o Selenium, use a seguinte configuração em Ruby para se conectar ao Browserless:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("goog:chromeOptions" => {
  "args" => [
    "--disable-dev-shm-usage",
    "--disable-extensions",
    "--headless",
    "--no-sandbox"
  ]
})

Você pode estabelecer a conexão WebDriver usando um formato de URL simples:

driver = Selenium::WebDriver.for :remote, 
  url: "https://[email protected]/webdriver",
  desired_capabilities: caps

Essa configuração garante uma operação segura e eficiente, aproveitando o sandboxing e outros recursos de economia de recursos. Sempre feche as instâncias do navegador após o uso para evitar vazamentos de memória e otimizar o uso de recursos.

Dicas de desempenho

Ao trabalhar com o Browserless Chrome, gerenciar o desempenho é fundamental para manter a eficiência. Como a plataforma processa quase 5 milhões de sessões headless semanalmente [8], o gerenciamento cuidadoso de recursos e segurança é essencial para operações estáveis nessa escala.

Gerenciamento de recursos

O gerenciamento eficiente de recursos começa pela forma como as instâncias de navegador são processadas. Em vez de criar uma nova instância para cada tarefa, reutilize instâncias existentes para reduzir a sobrecarga de iniciar novas sessões:

const browser = await puppeteer.connect({ 
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-TOKEN' 
});
// Reuse the instance by disconnecting instead of closing
await browser.disconnect();

Outra tática eficaz é bloquear recursos desnecessários para reduzir o uso de recursos. Veja um detalhamento:

Tipo de recursoImpacto no desempenhoAção recomendada
ImagensConsome muita largura de bandaBloqueie usando page.setRequestInterception()
Arquivos CSSUsa memória adicionalDesative, a menos que sejam essenciais para o layout
FontesTorna o carregamento mais lentoBloqueie solicitações de fontes externas

Por exemplo, a Browserless.io relatou uma melhoria de desempenho em setembro de 2024, quando o bloqueio desses recursos reduziu o tempo de execução de 2.114 ms para 1.676 ms [10].

Como lidar com alto tráfego

Depois de otimizar os recursos, a próxima etapa é gerenciar o alto tráfego com eficiência. O escalonamento horizontal é mais confiável do que depender de poucas instâncias grandes.

"O Chrome é realmente muito eficiente em usar todos os recursos do sistema e adora usar partes iguais de CPU e memória para a maioria das coisas" [8]

Para lidar com demandas de alto volume, considere estas estratégias:

  • Use o Nginx para balanceamento de carga entre várias instâncias menores do Browserless.
  • Ative verificações de integridade antes das solicitações com PRE_REQUEST_HEALTH_CHECK=true e limite sessões simultâneas usando MAX_CONCURRENT_SESSIONS=10.
  • Garanta o encerramento adequado dos processos para evitar processos "zumbis" persistentes.

"Independentemente de onde ou como você execute suas sessões headless, é importante eliminar o Chrome com o fogo de mil sóis" [8]

Configuração de segurança

Uma configuração segura não apenas protege seus dados, como também garante desempenho consistente sob cargas intensas. Veja como proteger sua implantação:

  • Armazene chaves de API como valores com hash em ambientes seguros.
  • Use restrições de IP para controlar o acesso.
  • Ative o gerenciamento de acesso baseado em funções.
  • Aplique limitação de taxa aos endpoints da API.

Para implantações com Docker, defina limites de recursos para evitar sobrecarga:

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

Para processar código não confiável, use o módulo vm2 para criar ambientes isolados. Essa abordagem evita ataques que consomem muita CPU. Desde 5 de março de 2018, a Browserless.io usa dumb-init em contêineres Docker para gerenciar o encerramento de processos com eficiência [9].

Resumo

O Browserless Chrome simplifica a automação ao assumir as tarefas complexas de infraestrutura, que antes consumiam uma parcela significativa do tempo dos desenvolvedores — cerca de 60%. Ao isolar o Chrome dos serviços principais, ele garante melhor balanceamento de carga, escalabilidade e gerenciamento de erros. Um exemplo notável é a Samsara, que reformulou seus testes baseados em Puppeteer ao eliminar a necessidade de manter infraestrutura especializada. Isso permitiu que seus engenheiros se concentrassem mais na criação do produto principal, em vez de se preocuparem com operações de backend [1].

Veja um resumo do que torna o Browserless Chrome uma solução transformadora:

RecursoImpacto nos negócios
Separação da infraestruturaEvita que problemas relacionados ao Chrome interrompam todo o serviço [11]
Balanceamento de carga integradoPermite escalonar com facilidade, sem configuração adicional
Prevenção da detecção de botsAumenta as taxas de sucesso em tarefas de automação web [1]
Integração com API RESTTorna tarefas como criação de PDFs e geração de capturas de tela muito mais fáceis [1]

Esses recursos tornam a migração para o Browserless Chrome uma escolha prática e eficiente para necessidades de automação.

Etapas para começar

Quer integrar o Browserless Chrome ao seu fluxo? Veja como começar:

  1. Escolha um método de integração: Antes de começar, teste a funcionalidade com o depurador online. Depois, escolha entre Puppeteer, Playwright ou Selenium com base nas ferramentas que você já usa [7].
  2. Atualize sua configuração: Substitua a inicialização local do Puppeteer conectando-se ao Browserless. Basta atualizar seu código para usar puppeteer.connect() com seu endpoint do Browserless.
  3. Acompanhe o desempenho: Use as ferramentas integradas do Browserless, como verificações de integridade e métricas de fila, para monitorar o desempenho [1].

References

FAQ

Frequently Asked Questions

O Browserless Chrome é um serviço Chrome headless baseado em nuvem que executa automação de navegadores para coleta de dados da web, geração de PDFs, testes e renderização de JavaScript, sem exigir infraestrutura local de navegador.

Isso foi útil? Compartilhe →

Escrito por

Vasiliy Datsenko

Head of Customer Support

Vasiliy Datsenko é Head of Customer Support na Latenode e um escritor de automação focado em produto. Seu trabalho conecta conversas com clientes, pesquisa de automação de fluxos de trabalho, casos de uso de IA e educação prática sobre produtos para equipes que tentam automatizar processos de negócios reais.

Perfil do autor →

Verificado por

Oleg Zankov

CEO da Latenode, Especialista em No-code

Com uma filosofia enraizada em inovação, resolução de problemas e experiência do usuário, estou focado em capacitar equipes a criar integrações personalizadas e automatizar fluxos de trabalho com facilidade e eficiência. Trazendo uma vasta experiência em desenvolvimento de negócios, empreendedorismo tecnológico e desenvolvimento de software, reconheci a necessidade de uma solução de integração mais acessível, escalável e adaptável. Assim, nasceu a Latenode.com. Com nossa plataforma, as empresas podem aproveitar o poder da tecnologia sem a necessidade de conhecimentos extensos em programação. Apaixonado por promover um futuro onde a tecnologia nos serve, e não o contrário, minha missão é tornar processos complexos simples. Acredito em democratizar a tecnologia e equipar as equipes com as ferramentas para inovar, crescer e ter sucesso em um mundo cada vez mais digital.

Perfil do autor →

Continue lendo