Como Usar AdsPower com Puppeteer: Guia Completo de Configuração

By Anonymous☉ 3441 Views

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

Como 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:

  1. AdsPower instalado no Windows, Mac ou Linux
  2. Um plano AdsPower pago — o acesso à API Local requer uma assinatura paga
  3. Node.js instalado, versão 16 ou mais recente
  4. 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 Selenium
  • ws.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

Fontes e leitura adicional

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.

AI INSIGHTS

Need a Quick Summary? Ask AI