Geral

Jorge Miloradovitch
Pesquisador, redator e entrevistador de casos de uso
28 de fevereiro de 2025
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:
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.
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.
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.
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.
Dependendo da biblioteca que você usa, veja como você pode estabelecer sua primeira conexão:
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/"}'
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.
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.
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.
O Browserless oferece APIs adaptadas para necessidades comuns de automação, aprimorando sua funcionalidade principal:
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 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.
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.
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.
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.
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.
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.
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:
PRE_REQUEST_HEALTH_CHECK=true
e limitar sessões simultâneas usando MAX_CONCURRENT_SESSIONS=10
."Independentemente de onde ou como você esteja executando suas sessões headless, é importante matar Cromado com o fogo de mil sóis"
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:
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.
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.
Quer integrar o Browserless Chrome ao seu fluxo de trabalho? Veja como você pode começar:
puppeteer.connect()
com seu endpoint sem navegador.