Chrome sem navegador: uma ferramenta poderosa para automação de navegadores
Otimize a automação do navegador com um serviço Chrome headless baseado em nuvem que simplifica a extração de dados da web, a geração de PDFs e os testes.

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, Dramaturgo, ou 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 extrai a imagem mais recente e a torna acessível na porta 3000 . 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 | Os utilizadores da app Smart Spaces com Google Wallet podem usufruir de acesso móvel sem contacto com qualquer leitor HID® Signo™ habilitado com NFC. | 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
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">connect</span>({
<span class="hljs-attr">browserWSEndpoint</span>: <span class="hljs-string">'wss://chrome.browserless.io?token=YOUR-API-TOKEN'</span>
});
- Integração do dramaturgo
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> playwright.<span class="hljs-property">firefox</span>.<span class="hljs-title function_">connect</span>(
<span class="hljs-string">`wss://production-sfo.browserless.io/firefox/playwright?token=<span class="hljs-subst">${TOKEN}</span>&proxy=residential`</span>
);
- Acesso à API REST
curl -X POST https://chrome.browserless.io/content
-H <span class="hljs-string">'Content-Type: application/json'</span>
-H <span class="hljs-string">'Authorization: Basic YOUR-BASE64-TOKEN'</span>
-d <span class="hljs-string">'{ "url": "https://example.com/"}'</span>
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 processadas, o Browserless Chrome gerou milhões de capturas de tela, PDFs e resultados de testes . Seu sistema de gerenciamento de filas 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
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 | Usa puppeteer.launch() | Consome recursos locais |
| Marionetista sem navegador | Usa 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:
<span class="hljs-keyword">const</span> launchArgs = <span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">stringify</span>({
<span class="hljs-attr">args</span>: [<span class="hljs-string">'--window-size=1920,1080'</span>],
<span class="hljs-attr">stealth</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">timeout</span>: <span class="hljs-number">5000</span>
});
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">connect</span>({
<span class="hljs-attr">browserWSEndpoint</span>: <span class="hljs-string">`wss://production-sfo.browserless.io/?token=YOUR_API_TOKEN_HERE&launch=<span class="hljs-subst">${launchArgs}</span>`</span>
});
Esta configuração suporta configurações avançadas, mantendo a simplicidade.
Dramaturgo Integração
O Browserless funciona igualmente bem com o Playwright. Aqui está um exemplo de como conectar usando o Firefox:
<span class="hljs-comment">// Firefox implementation with Playwright Protocol</span>
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> playwright.<span class="hljs-property">firefox</span>.<span class="hljs-title function_">connect</span>(
<span class="hljs-string">'wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE'</span>
);
Para desenvolvedores que usam Python, o Browserless garante uma experiência consistente:
<span class="hljs-keyword">with</span> sync_playwright() <span class="hljs-keyword">as</span> p:
browser = p.firefox.connect(<span class="hljs-string">'wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE'</span>)
context = browser.new_context()
Essa compatibilidade entre idiomas facilita a integração do Browserless em vários fluxos de trabalho.
Selênio Integração
Para Selenium, use a seguinte configuração Ruby para se conectar ao Browserless:
caps = <span class="hljs-title class_">Selenium</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:WebDriver</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:Remote</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:Capabilities</span>.chrome(<span class="hljs-string">"goog:chromeOptions"</span> => {
<span class="hljs-string">"args"</span> => [
<span class="hljs-string">"--disable-dev-shm-usage"</span>,
<span class="hljs-string">"--disable-extensions"</span>,
<span class="hljs-string">"--headless"</span>,
<span class="hljs-string">"--no-sandbox"</span>
]
})
Você pode estabelecer a conexão do WebDriver usando um formato de URL simples:
driver = <span class="hljs-title class_">Selenium</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:WebDriver</span>.<span class="hljs-keyword">for</span> <span class="hljs-symbol">:remote</span>,
<span class="hljs-symbol">url:</span> <span class="hljs-string">"https://[email protected]/webdriver"</span>,
<span class="hljs-symbol">desired_capabilities:</span> 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:
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">connect</span>({
<span class="hljs-attr">browserWSEndpoint</span>: <span class="hljs-string">'wss://chrome.browserless.io?token=YOUR-TOKEN'</span>
});
<span class="hljs-comment">// Reuse the instance by disconnecting instead of closing</span>
<span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">disconnect</span>();
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 | Bloqueie 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:
- Uso 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=truee limitar sessões simultâneas usandoMAX_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 do processo 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 | Impede que problemas relacionados ao Chrome interrompam todo o serviço [11] |
| 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 [1] |
| Integração com API REST | Facilita muito tarefas como a criação de PDFs e a geração de capturas de tela [1] |
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:
- 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 .
- 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. - 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 .
Artigos Relacionados



