🎯 Um navegador em nuvem personalizável e anti-detecção alimentado por Chromium desenvolvido internamente, projetado para rastreadores web e agentes de IA. 👉Experimente agora
De volta ao blog

Puppeteer Navegador de Impressão Digital Indetectável Com Scrapeless

James Thompson
James Thompson

Scraping and Proxy Management Expert

09-Jul-2026

TL;DR:

  • O Puppeteer já fala o Protocolo DevTools do Chrome, então puppeteer.connect() o aponta para o Scrapeless com uma URL. Troque um puppeteer.launch() local por uma conexão com o navegador na nuvem e cada script roda em uma identidade limpa.
  • Um navegador Puppeteer local vaza automação em três eixos: a flag navigator.webdriver, uma impressão digital padrão de headless e seu próprio IP de saída. Sistemas anti-bot pontuam os três juntos.
  • O Scrapeless Scraping Browser responde todos os três no lado do servidor — um Chromium real e auto-desenvolvido, uma impressão digital consistente por sessão sem o indicativo de webdriver, e saída residencial em mais de 195 países.
  • Seu código Puppeteer permanece inalterado. page.goto, page.evaluate, seletores e esperas se comportam exatamente como fazem localmente; apenas a linha de conexão se move.
  • Verificado ao vivo: uma sessão de puppeteer.connect() leu navigator.webdriver como false, reportou um IP de saída residencial dos EUA e retornou o título real da página alvo.
  • Gratuito para começar. Novas contas Scrapeless incluem tempo de execução gratuito do Scraping Browser — inscreva-se em app.scrapeless.com.

O Puppeteer controla um verdadeiro Chromium através do Protocolo DevTools. Lance esse Chromium na sua própria máquina e cada script herda os sinais que tornam a automação óbvia: ele se anuncia através da propriedade navigator.webdriver, envia fontes e comportamento de canvas padrão de headless, e sai de um IP que serviços de reputação já reconhecem.

Você pode corrigir cada um desses problemas com um plugin de furtividade e continuar corrigindo à medida que o Chromium e os detectores mudam. Porém, há um caminho mais curto. O Puppeteer se conecta a qualquer navegador que exponha um endpoint DevTools através do puppeteer.connect(), e o Scrapeless Scraping Browser é um endpoint do Protocolo DevTools do Chrome acessado através de uma URL WebSocket. Aponte o Puppeteer para isso e a impressão digital, a superfície comportamental e o IP de saída se movem para o lado do servidor — seu script permanece onde está.


O que você pode fazer com isso

  • Executar scripts contra sites protegidos por anti-bot — o navegador na nuvem limpa os desafios durante a renderização, então page.goto acessa o conteúdo.
  • Localizar a sessão — fixe proxyCountry para que uma página se resolva da forma como um visitante naquele mercado a vê.
  • Enviar uma impressão digital consistente — passe um objeto fingerprint para que o agente do usuário, plataforma, tela e fuso horário permaneçam coerentes.
  • Persistir estado de login — carregue um profileId para que cookies e armazenamento local sobrevivam entre execuções.
  • Escalar além da sua máquina — as sessões rodam na nuvem, não no seu laptop.
  • Manter a automação idênticapage.evaluate, seletores, cliques e esperas não são alterados.

Por que usar o Scrapeless Scraping Browser

O Scrapeless Scraping Browser é um navegador na nuvem personalizável e anti-detecção, projetado para crawlers web e agentes de IA. Para o Puppeteer especificamente, ele traz:

  • Um verdadeiro Chromium auto-desenvolvido que roda o JavaScript da página exatamente como o Chrome, então SPAs e desafios se resolvem.
  • Uma impressão digital consistente por sessão — sem indicativo de navigator.webdriver, sem padrões de headless vazando.
  • Saída residencial em mais de 195 países, selecionada por sessão com um único valor de proxyCountry.
  • Persistência de sessão através de profileId, para que um fluxo autenticado mantenha seu estado.
  • Uma superfície de conexão — cada opção é um parâmetro de consulta no mesmo endpoint WebSocket.

Obtenha sua chave de API no plano gratuito em app.scrapeless.com.


Pré-requisitos

  • Node.js 18 ou mais recente
  • puppeteer-core instalado (nenhum Chromium embutido necessário — você se conecta a um remoto)
  • Uma conta Scrapeless e chave de API — inscreva-se em app.scrapeless.com

Detalhes completos da conexão estão na documentação do Scraping Browser.


Instalar

Use puppeteer-core — ele é enviado sem um download local de Chromium, já que o navegador vive na nuvem.

bash Copy
npm install puppeteer-core
export SCRAPELESS_API_KEY=seu_token_api_aqui   # chave gratuita em https://app.scrapeless.com

Configurar a conexão

O endpoint é wss://browser.scrapeless.com/api/v2/browser, e cada opção é um parâmetro de consulta. Fixe proxyCountry para uma região residencial.

javascript Copy
import { URLSearchParams } from "node:url";

function scrapelessEndpoint(extra = {}) {
```javascript
import puppeteer from "puppeteer-core";
import { URLSearchParams } from "node:url";

const params = new URLSearchParams({
  token: process.env.SCRAPELESS_API_KEY,
  sessionTTL: "180",       // segundos
  proxyCountry: "US",
});
const endpoint = `wss://browser.scrapeless.com/api/v2/browser?${params}`;

const browser = await puppeteer.connect({ browserWSEndpoint: endpoint });
const page = await browser.newPage();

await page.goto("https://www.scrapeless.com/en", { waitUntil: "domcontentloaded", timeout: 60000 });
console.log("título:", await page.title());
console.log("navigator.webdriver:", await page.evaluate(() => navigator.webdriver));

await page.goto("https://httpbin.io/ip", { waitUntil: "domcontentloaded", timeout: 60000 });
console.log("ip de saída:", JSON.parse(await page.evaluate(() => document.body.innerText)).origin);

await browser.close();

Uma execução ao vivo deste script imprimiu o título da página Ferramenta de Web Scraping Sem Esforço - Scrapeless, navigator.webdriver: false, e um IP residencial dos EUA — a mesma API Puppeteer que você já usa, proveniente do navegador em nuvem.

Obtenha sua chave de API no plano gratuito: app.scrapeless.com

Enviar uma impressão digital consistente

Um objeto fingerprint mantém a identidade divulgada do navegador coerente — User Agent, plataforma, tela e fuso horário tudo concorda. Codifique-o em JSON, codifique-o em URL e passe-o como mais um parâmetro. A especificação W3C WebDriver exige que a automação conformante exponha o sinalizador webdriver; o navegador em nuvem não o transporta, então nada contradiz a impressão digital que você envia.

javascript Copy
const fingerprint = {
  userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
  platform: "Windows",
  screen: { width: 1920, height: 1080 },
  localization: { languages: ["pt-BR", "pt"], timezone: "America/São_Paulo" },
};
const endpoint = scrapelessEndpoint({ fingerprint: encodeURIComponent(JSON.stringify(fingerprint)) });

Onde o Puppeteer local para

Executar o Puppeteer em seu próprio Chromium é bom para páginas abertas e desprotegidas. A fricção começa onde o alvo pontua o navegador: um desafio intersticial que trava em um IP de datacenter, uma página que imprime as configurações padrão headless ou uma parede de login que quer uma identidade estável em visitas. Cada um é um problema de impressão digital, comportamento ou IP — exatamente os três que o navegador em nuvem lida no lado do servidor. Conectar-se ao Scrapeless entrega esses casos a uma sessão gerenciada enquanto suas chamadas page permanecem idênticas.


O que você recebe de volta

A sessão se comporta como qualquer sessão do Puppeteer — page.goto, page.evaluate, page.$$eval, e cookies funcionam normalmente. Algumas observações honestas ao executá-la pelo navegador em nuvem:

  • navigator.webdriver é false, então a primeira verificação que um site faz se lê como um Chrome real.
  • sessionTTL está em segundos aqui — defina-o longo o suficiente para cobrir todo o fluxo; a sessão fecha quando expira.
  • O IP de saída corresponde ao proxyCountry — páginas geo-bloqueadas se resolvem como um visitante local as vê.
  • Aqueça a sessão para páginas teimosas — carregue a página inicial do site primeiro antes da página protegida, para que a superfície comportamental leia como uma visita normal.

O Puppeteer decide o que fazer; o Scrapeless decide como o navegador é visto pelo site. A integração é uma linha — puppeteer.connect() com o navegador em nuvem — e o resto do seu script permanece inalterado. Prenda o proxyCountry a uma região residencial, passe uma fingerprint coerente e reutilize um profileId para fluxos autenticados. Para executar o mesmo navegador em nuvem a partir do Python, veja o guia de produção-scraper Scrapling, e compare planos na página de preços do Scrapeless.


Pronto para Construir Seu Pipeline de Scraping com Puppeteer?

Junte-se à nossa comunidade para reivindicar um plano gratuito e se conectar com desenvolvedores que estão construindo pipelines Puppeteer: Discord · Telegram.
Inscreva-se em app.scrapeless.com para obter o runtime gratuito do Scraping Browser e aponte puppeteer.connect() para o navegador na nuvem que seus alvos não podem identificar.


FAQ

P: Eu preciso mudar meu código do Puppeteer?
Não. Você muda a forma como o navegador é obtido — puppeteer.connect({ browserWSEndpoint }) em vez de puppeteer.launch(). Cada chamada page após isso é idêntica.

P: puppeteer ou puppeteer-core?
Use puppeteer-core. Ele ignora o download do Chromium empacotado porque você se conecta ao navegador na nuvem em vez de iniciar um local.

P: Eu preciso de um proxy?
Não. A saída residencial está embutida — configure proxyCountry para uma região ou ANY. Não há um proxy separado para configurar.

P: sessionTTL está em segundos ou milissegundos?
Para a conexão do Scraping Browser aqui, está em segundos — 180 são três minutos. Ajuste para cobrir todo o fluxo.

P: É legal fazer web scraping com Puppeteer?
Acessar dados disponíveis publicamente é geralmente permitido, mas as regras variam de acordo com a jurisdição e o site. Revise os termos de serviço do alvo, respeite as diretrizes de robôs e consulte um advogado para qualquer questão sensível.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo