Como Usar AdsPower com Puppeteer: Guia Completo de Configuração
Take a Quick Look
Aprenda a conectar o navegador anti-detecção AdsPower com Puppeteer para automação multi-conta, scraping e testes mais seguros. Configuração passo a passo e exemplos de código.
🔥 Limited-Time Offer! Save extra 10% off on your first monthly plan with code: Anitdetect10
Sign upComo Usar AdsPower com Puppeteer
AdsPower e Puppeteer resolvem metades diferentes do mesmo problema de automação. AdsPower oferece perfis de navegador isolados com impressões digitais únicas, enquanto Puppeteer oferece uma forma programática de controlar esses perfis. Juntos, eles permitem automatizar fluxos de trabalho multi-conta, tarefas de scraping e rotinas de teste sem parecer um bot.
Este guia aborda a configuração completa: como a API Local funciona, como iniciar um perfil, como conectar o Puppeteer a ele e como evitar os erros comuns que quebram a conexão.
Por que Combinar AdsPower e Puppeteer?
Puppeteer sozinho é poderoso, mas fácil de detectar. Uma instância padrão do Chrome headless expõe sinais de automação através de sua impressão digital, cabeçalhos e comportamento. Sites que executam verificações anti-bot podem sinalizá-lo rapidamente.
AdsPower muda a equação. Cada perfil roda em um ambiente isolado com seu próprio Canvas, WebGL, user agent, fuso horário, idioma e outros parâmetros de impressão digital. Quando você conecta o Puppeteer a um perfil AdsPower, sua automação herda essa impressão digital realista em vez de uma assinatura de navegador padrão.
Essa combinação é útil para:
- Gerenciar múltiplas contas de vendedor em e-commerce sem vinculação entre contas
- Extrair dados de sites que bloqueiam navegadores headless ou IPs de datacenter
- Executar ações automatizadas em redes sociais em perfis separados
- Testar aplicativos web em diferentes condições geográficas e de dispositivo
- Fluxos de trabalho de marketing de afiliados que exigem identidades de navegador distintas
Para uma comparação mais ampla de opções de navegadores anti-detecção, veja nosso top 10 produtos de navegadores anti-detecção testados em 2026.
Pré-requisitos
Antes de começar, certifique-se de ter:
- AdsPower instalado no Windows, Mac ou Linux
- Um plano AdsPower pago — o acesso à API Local requer uma assinatura paga
- Node.js instalado, versão 16 ou mais recente
- Puppeteer instalado no seu projeto:
npm install puppeteer
Entendendo a API Local do AdsPower
AdsPower expõe uma API Local que roda na sua máquina. O endpoint padrão é:
http://local.adspower.net:50325/
Você também pode usar http://localhost:50325/. Se o endereço mudar, leia o arquivo local_api que o AdsPower gera:
- MacOS: dentro do diretório de suporte do aplicativo
- Linux:
~/.config/adspower_global/cwd_global/source/local_api
Todas as chamadas de API aceitam parâmetros de consulta como strings e retornam JSON. Quando a verificação de segurança estiver habilitada, inclua um cabeçalho de autorização:
Authorization: Bearer sua_chave_api
Passo 1: Criar um Perfil de Navegador
Abra o aplicativo de desktop AdsPower e crie um novo perfil. Dê um nome, escolha um sistema operacional e, opcionalmente, atribua um proxy. O user_id do perfil é o que você usará em todas as chamadas de API.
Você pode encontrar o user_id na lista de perfis ou chamando o endpoint de consulta de perfil. Mantenha-o à mão.
Passo 2: Iniciar o Perfil via API Local
O endpoint principal para integração com Puppeteer é /api/v1/browser/start. Ele inicia um perfil e retorna o endereço de depuração WebSocket que o Puppeteer precisa.
Aqui está um exemplo mínimo em Node.js usando o fetch embutido:
const API_BASE = 'http://local.adspower.net:50325';
async function startBrowser(userId) {
const url = `${API_BASE}/api/v1/browser/start?user_id=${userId}`;
const response = await fetch(url);
const result = await response.json();
if (result.code !== 0) {
throw new Error(`Falha ao iniciar o navegador: ${result.msg}`);
}
return result.data;
}
const data = await startBrowser('seu_user_id_do_perfil');
console.log(data.ws.puppeteer); // ws://127.0.0.1:xxxx/devtools/browser/xxxxxx
A resposta contém um objeto ws com dois endpoints de depuração:
ws.selenium— para automação com Seleniumws.puppeteer— para automação com Puppeteer
Use o valor puppeteer no próximo passo.
Passo 3: Conectar o Puppeteer ao Perfil em Execução
Em vez de iniciar um novo navegador com puppeteer.launch(), use puppeteer.connect() para anexar ao perfil AdsPower que já está em execução:
import puppeteer from 'puppeteer';
const browser = await puppeteer.connect({
browserWSEndpoint: data.ws.puppeteer,
defaultViewport: null
});
const pages = await browser.pages();
const page = pages[0] || await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
O detalhe chave: browserWSEndpoint deve ser exatamente a string ws.puppeteer retornada pela API de início. Não adicione ou remova segmentos de caminho.
Passo 4: Executar Automação no Perfil
Uma vez conectado, você pode usar toda a API do Puppeteer. Aqui está um exemplo prático que abre uma página, espera por um seletor e extrai texto:
const page = await browser.newPage();
await page.goto('https://www.amazon.com', {
waitUntil: 'domcontentloaded',
timeout: 60000
});
await page.waitForSelector('#nav-logo-sprites', { timeout: 30000 });
const title = await page.title();
console.log(`Título da página: ${title}`);
Para tarefas de scraping, combine o perfil com um proxy residencial. O AdsPower suporta atribuição de proxy por perfil, o que mascara seu IP junto com a impressão digital. Se precisar de recomendações de proxy, nossa análise do IPRoyal cobre opções residenciais, ISP e datacenter.
Passo 5: Fechar o Navegador e Limpar
Quando sua automação terminar, desconecte o Puppeteer e feche o navegador AdsPower através da API:
await browser.disconnect();
const closeUrl = `${API_BASE}/api/v1/browser/stop?user_id=${userId}`;
await fetch(closeUrl);
Sempre feche os perfis que não estiver usando. Perfis ociosos consomem memória e podem interferir em execuções de automação posteriores.
Exemplo Prático: Scraping com Múltiplos Perfis
Um caso de uso comum é extrair dados do mesmo site de vários perfis para distribuir a carga de solicitações. Aqui está um padrão compacto de worker:
const PROFILE_IDS = ['id_1', 'id_2', 'id_3'];
async function scrapeWithProfile(userId, targetUrl) {
const data = await startBrowser(userId);
const browser = await puppeteer.connect({
browserWSEndpoint: data.ws.puppeteer,
defaultViewport: null
});
const page = await browser.newPage();
await page.goto(targetUrl, { waitUntil: 'networkidle2' });
const result = await page.evaluate(() => {
return document.querySelector('h1')?.innerText || 'Sem título';
});
console.log(`Perfil ${userId}: ${result}`);
await browser.disconnect();
await fetch(`${API_BASE}/api/v1/browser/stop?user_id=${userId}`);
}
for (const id of PROFILE_IDS) {
await scrapeWithProfile(id, 'https://example.com');
}
Execute os perfis sequencialmente ou use uma fila com concorrência limitada. Enviar muitas solicitações simultâneas da mesma máquina ainda pode acionar limitação de taxa, mesmo com impressões digitais únicas.
Parâmetros Úteis da API para Fluxos de Trabalho com Puppeteer
Vários parâmetros opcionais no endpoint de início são bons de conhecer:
| Parâmetro | Padrão | Finalidade |
|---|---|---|
headless |
0 | Defina como 1 para iniciar o perfil em modo headless |
launch_args |
- | Passe flags do Chromium, como desabilitar imagens ou notificações |
clear_cache_after_closing |
0 | Defina como 1 para excluir o cache quando o navegador fechar |
ip_tab |
1 | Controle se a página de detecção de IP abre |
open_tabs |
0 | Abrir ou fechar abas salvas na inicialização |
Exemplo com argumentos de inicialização:
const url = `${API_BASE}/api/v1/browser/start?user_id=${userId}` +
`&launch_args=["--disable-notifications","--blink-settings=imagesEnabled=false"]`;
Desabilitar imagens pode acelerar significativamente o scraping quando o conteúdo visual não é necessário.
Problemas Comuns e Correções
Conexão recusada em localhost:50325
Certifique-se de que o AdsPower está em execução e que você tem um plano pago. A API Local não está disponível em contas gratuitas. Verifique o arquivo local_api se a porta mudou.
Puppeteer conecta, mas as páginas estão vazias
Chame browser.pages() após conectar. O AdsPower pode abrir uma aba padrão, mas se nenhuma existir, crie uma com browser.newPage().
O perfil abre, mas a automação não encontra elementos
Use estratégias de espera realistas. Prefira waitForSelector com timeouts explícitos em vez de chamadas sleep fixas. Se o site for lento, aumente o timeout.
O modo headless é detectado
Alguns sites identificam o Chrome headless de forma mais agressiva. Se você encontrar CAPTCHAs no modo headless, execute o perfil em modo com interface (headless=0) ou use uma configuração de proxy mais forte.
AdsPower + Puppeteer vs. Outras Abordagens de Automação
| Abordagem | Controle de impressão digital | Segurança multi-conta | Complexidade de configuração |
|---|---|---|---|
| Puppeteer puro | Baixo | Nenhum | Baixa |
| Puppeteer + plugins stealth | Médio | Nenhum | Média |
| AdsPower + Puppeteer | Alto | Alto | Média |
| AdsPower RPA | Alto | Alto | Baixa |
Se você precisa de automação simples, sem código, dentro do AdsPower, a ferramenta RPA integrada pode ser suficiente. Mas quando você precisa de lógica personalizada, fluxos condicionais ou integração com seu próprio código Node.js, a rota do Puppeteer é muito mais flexível.
Para configurações de e-commerce com várias lojas, o mesmo padrão se aplica. Veja nosso guia sobre usar AdsPower com Ecwid para gerenciamento de várias lojas para um fluxo de trabalho concreto.
Leitura relacionada
- AdsPower vs Octo Browser vs BitBrowser: Testado em 2026 - Compare AdsPower, Octo Browser e BitBrowser em impressão digital, automação, preços, níveis gratuitos e casos de uso ideais para escolher o navegador anti-detecção certo.
- Análise do Ticketmaster 2026: Taxas, Prós, Contras e Veredito - Análise baseada em evidências do Ticketmaster cobrindo ingressos verificados, taxas, revenda, suporte ao cliente, desempenho do aplicativo e quem realmente deveria usá-lo em 2026.
- Avaliações do MaxBounty 2026: Prós, Contras Honestos e Veredito do Usuário - Leia avaliações reais do MaxBounty de afiliados em 2026. Analisamos aprovação, pagamentos, qualidade das ofertas, suporte e se o MaxBounty vale a pena.
Fontes e leitura adicional
- 5 Maneiras Eficazes de Fazer Web Scraping Sem Ser Bloqueado - Os sites estão cheios de medidas anti-scraping prontas para detectar e bloquear você. Mas siga estas cinco maneiras e faça web scraping sem ser bloqueado.
- Abrir Navegador - BásicoCaminho: /api/v1/browser/start
Método: GETDescrição: Para abrir um navegador, você precisa especificar o ID do perfil. Após uma inicialização bem-sucedida, você pode obter a interface de depuração do navegador para executar Selenium e
- Visão Geral da API - O AdsPower suporta a função de API Local para ajudar os usuários a programaticamente ler e escrever informações de configuração de perfil, bem como criar, fechar e consultar perfis e outras funções básicas de API. Você
Perguntas Frequentes
Preciso de um plano AdsPower pago para usar o Puppeteer?
Sim. O acesso à API Local, que é necessário para a integração com Puppeteer, está disponível apenas em planos pagos.
Posso usar o Puppeteer com AdsPower no Linux?
Sim. O AdsPower suporta Windows, Mac e Linux. A API Local funciona da mesma forma em todas as plataformas, embora o caminho do arquivo local_api seja diferente.
O Puppeteer substitui a automação integrada do AdsPower?
Não. O RPA do AdsPower é uma ferramenta visual, sem código. O Puppeteer é para desenvolvedores que querem controle programático total. Eles atendem a necessidades diferentes e podem coexistir.
Posso executar várias conexões Puppeteer ao mesmo tempo?
Sim. Inicie vários perfis através da API e conecte uma instância separada do Puppeteer a cada um. Respeite os limites de taxa da API, que variam de acordo com o número de perfis.
E se o endereço WebSocket mudar entre execuções?
O valor ws.puppeteer é gerado novamente a cada inicialização. Sempre chame /api/v1/browser/start e use o endereço retornado em vez de codificá-lo.
Conclusão
AdsPower cuida do isolamento de identidade; Puppeteer cuida da automação de comportamento. Conectá-los através da API Local dá a você uma impressão digital de navegador realista e uma interface de script completa em um único fluxo de trabalho. O padrão é simples: inicie um perfil, conecte com puppeteer.connect(), automatize e depois pare o perfil.
Comece com um perfil e um script básico. Quando a conexão estiver estável, escale para vários perfis com proxies e uma fila. Essa combinação cobre a maioria das necessidades de multi-conta, scraping e teste sem acionar os sistemas anti-bot que bloqueiam o Puppeteer puro.
Para mais orientação sobre automação e proxies, confira nosso guia de configuração do NetNut para AdsPower e a comparação AdsPower vs Undetectable vs BitBrowser.
