Geral
Jorge Miloradovitch
Pesquisador, redator e entrevistador de casos de uso
28 de fevereiro de 2025
Uma plataforma de baixo código que combina a simplicidade sem código com o poder do código completo 🚀
Comece gratuitamente
28 de fevereiro de 2025
.
8
min ler

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

Jorge Miloradovitch
Pesquisador, redator e entrevistador de casos de uso
Índice

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

  • Nenhuma configuração local: Use o Docker ou a implantação na nuvem para começar rapidamente.
  • Desempenho Rápido: Capturas de tela em ~1 segundo, PDFs em ~2 segundos.
  • Ignorar detecção de bot: Supera bloqueadores como Cloudflare para automação confiável.
  • Eficiência de recursos: Reduz o uso de proxy e máquina virtual em até 90%.

Configuração rápida: Integre-se com bibliotecas populares como Marionetista, Dramaturgoou Selênio usando métodos de conexão simples. O Browserless também oferece APIs para web scraping, renderização de JavaScript e fluxos de trabalho de automação personalizados.

Comparação rápida de recursos

Característica Beneficiar Exemplo
Limpeza de sessão Remove sessões inativas automaticamente Mantém os recursos otimizados
Prevenção de detecção de bots Ignora bloqueadores como o Cloudflare Confiável para tarefas de raspagem
Processamento multitarefa Lida com solicitações simultâneas de forma eficaz Mais de 2 milhões de sessões processadas semanalmente
APIs prontas para uso Simplifica tarefas de automação Extração de dados JSON, PDFs

O Chrome sem navegador é ideal para desenvolvedores e empresas que buscam otimizar a automação sem gerenciar 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 usando o Docker ou uma implantação na nuvem. Para uma configuração local do Docker, use o seguinte comando:

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

Este comando puxa a imagem mais recente e a torna acessível na porta 3000 . Ele funciona perfeitamente no Windows, macOS e Linux.

Configuração inicial

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

Característica Configuração padrão Propósito
Limpeza de sessão 30 segundos Remove sessões inativas automaticamente
Verificações de saúde ativado Garante a estabilidade do sistema
Fila de solicitação configurável Gerencia múltiplas conexões simultâneas
Limites de recursos Ajustável Controla o uso da memória e da CPU

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

MAX_CONCURRENT_SESSIONS=10
CONNECTION_TIMEOUT=30000
MAX_QUEUE_LENGTH=100

Depois de configurado, 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 você pode estabelecer sua primeira conexão:

  • Conexão do marionetista
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
  • Integração do dramaturgo
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 lidam com o isolamento de sessão, gerenciam solicitações simultâneas e se recuperam de travamentos automaticamente. Eles também limpam sessões inativas após 30 segundos, iniciando uma nova instância do navegador para cada nova sessão.

Principais características

Noções básicas sobre navegadores sem interface

O Chrome sem navegador opera sem uma interface gráfica, rodando em modo headless. Ele inicia automaticamente novas instâncias do navegador para solicitações de entrada, garantindo uso eficiente de recursos.

Aqui está uma rápida visão geral de seus principais recursos:

Característica Descrição Beneficiar
Isolamento de Sessão Sessões de navegador independentes Reduz os custos de infraestrutura
Recuperação Automática Reinicia após falhas Mantém as operações em andamento
Otimização de Recursos Uso eficiente de memória e CPU Aumenta o desempenho geral

Além desses itens essenciais, o Browserless foi projetado para lidar com várias tarefas ao mesmo tempo com facilidade.

Processamento multitarefa

Com mais de 2 milhões de sessões manipuladas, o Browserless Chrome gerou milhões de capturas de tela, PDFs e resultados de testes. Seu sistema de gerenciamento de fila inteligente garante que as solicitações sejam processadas sem sobrecarregar os recursos, mantendo um desempenho consistente. Isso provou ser especialmente útil para empresas como Samsara, que mudou de um serviço de teste interno para um serviço sem navegador para melhor escalabilidade.

"O Browserless ostenta uma gama de recursos projetados para simplificar e acelerar tarefas de automação de navegador da web. Com sua API robusta e capacidade de lidar com operações paralelas, o Browserless se destaca como líder no espaço de automação." – Elest.io

O Browserless não se destaca apenas em multitarefas, mas também simplifica fluxos de trabalho de automação com APIs prontas para uso.

Funções de API prontas para uso

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

  • API de raspagem da Web: Extrai dados JSON estruturados de elementos de páginas da web.
  • Desbloquear API: Busca conteúdo HTML após executar JavaScript.
  • Função API: Executa código personalizado do Puppeteer com importações do módulo ESM.

Essas APIs forneceram resultados reais:

"Começamos a usar navegadores headless de outra empresa de scraping para executar scripts do Puppeteer. Mas, foi necessária uma atualização do Vercel devido aos tempos de busca lentos, e os proxies não estavam funcionando corretamente. Encontrei o Browserless e tinha nosso código Puppeteer rodando em uma hora. Os scrapes agora são 5x mais rápidos e 1/3 do preço, além do suporte ter sido excelente." – Nicklas Smit, Desenvolvedor Full-Stack, Takeoff Copenhagen

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

O que é sem navegador?

sbb-itb-23997f1

Guia de Integração de Bibliotecas

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

Marionetista Integração

Marionetista

Mudar para o Browserless no Puppeteer é simples - basta substituir puppeteer.launch() com puppeteer.connect() .

Tipo de configuração Estrutura de Código Diferenciais
Marionetista tradicional Uso puppeteer.launch() Consome recursos locais
Marionetista sem navegador Uso puppeteer.connect() Otimizado para a nuvem
Melhorado sem navegador Argumentos de inicialização personalizados Configurações avançadas

Você também pode passar argumentos de inicialização personalizados por meio do 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}`
});

Esta configuração suporta configurações avançadas, mantendo a simplicidade.

Dramaturgo Integração

Dramaturgo

O Browserless funciona igualmente bem com o Playwright. Aqui está um exemplo de como conectar 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 idiomas facilita a integração do Browserless em vários fluxos de trabalho.

Selênio Integração

Selênio

Para Selenium, use a seguinte configuração 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 do WebDriver usando um formato de URL simples:

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

Esta 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 é essencial para manter a eficiência. Com a plataforma lidando com quase 5 milhões de sessões headless semanalmente, o gerenciamento cuidadoso de recursos e segurança é essencial para operações tranquilas nessa escala.

Gestão de Recursos

O gerenciamento eficiente de recursos começa com a forma como as instâncias do navegador são manipuladas. 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 ativos desnecessários para reduzir o uso de recursos. Aqui está uma análise:

Tipo de recurso Impacto no Desempenho Ação recomendada
Imagens Consome alta largura de banda Bloquear usando page.setRequestInterception()
Arquivos CSS Usa memória extra Desabilitar a menos que seja crítico para o layout
Fontes Retarda o carregamento Bloquear solicitações de fontes externas

Por exemplo, o Browserless.io relatou uma melhoria de desempenho em setembro de 2024, onde o bloqueio desses recursos reduziu o tempo de execução de 2,114 ms para 1,676 ms.

Lidando com tráfego intenso

Uma vez que os recursos são otimizados, o próximo passo é gerenciar o tráfego alto de forma eficaz. O dimensionamento horizontal é mais confiável do que depender de algumas poucas instâncias grandes.

"O Chrome é realmente clientes bom em usar todos os recursos do sistema e adora usar partes iguais de CPU e memória para a maioria das coisas"

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

  • Use nginx para balanceamento de carga entre várias instâncias menores do Browserless.
  • Habilitar verificações de integridade pré-solicitadas com PRE_REQUEST_HEALTH_CHECK=true e limitar sessões simultâneas usando MAX_CONCURRENT_SESSIONS=10.
  • Garanta o término adequado do processo para evitar processos "zumbis" persistentes.

"Independentemente de onde ou como você esteja executando suas sessões headless, é importante matar Cromado com o fogo de mil sóis"

Configuração de Segurança

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

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

Para implantações do 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 lidar com código não confiável, use o vm2 módulo para criar ambientes isolados. Essa abordagem previne ataques intensivos de CPU. Desde 5 de março de 2018, o Browserless.io vem usando dumb-init dentro de contêineres Docker para gerenciar o término de processos de forma eficaz.

Resumo

O Chrome sem navegador simplifica a automação ao assumir o trabalho pesado de tarefas de infraestrutura, que costumavam ocupar uma parte 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 é o Samsara, que reformulou seus testes baseados no Puppeteer removendo o incômodo de manter infraestrutura especializada. Isso permitiu que seus engenheiros se concentrassem mais na construção de seu produto principal em vez de se preocupar com operações de backend.

Aqui está um resumo do que torna o Browserless Chrome uma revolução:

Característica Impacto nos negócios
Separação de Infraestrutura Evita que problemas relacionados ao Chrome interrompam todo o serviço
Balanceamento de carga integrado Permite dimensionamento sem esforço e sem configuração extra
Evitar detecção de bots Aumenta as taxas de sucesso para tarefas de automação da web
Integração com API REST Facilita muito tarefas como criação de PDF e geração de capturas de tela

Esses recursos fazem da mudança para o Chrome sem navegador uma escolha prática e eficiente para necessidades de automação.

Etapas de introdução

Quer integrar o Browserless Chrome ao seu fluxo de trabalho? Veja como você pode começar:

  1. Escolha um método de integração: Antes de mergulhar, teste a funcionalidade com o depurador online. Então, decida entre Puppeteer, Playwright ou Selenium com base em suas ferramentas atuais.
  2. Atualize sua configuração: Substitua seu lançamento local do Puppeteer conectando-se ao Browserless. Simplesmente atualize seu código para usar puppeteer.connect() com seu endpoint sem navegador.
  3. Acompanhe o desempenho: Use as ferramentas integradas do Browserless, como verificações de integridade e métricas de fila, para ficar de olho no desempenho.

Posts Relacionados do Blog

Blogs relacionados

Caso de uso

Apoiado por