Puppeteer Navegador de Impressão Digital Indetectável Com Scrapeless
Scraping and Proxy Management Expert
TL;DR:
- O Puppeteer já fala o Protocolo DevTools do Chrome, então
puppeteer.connect()o aponta para o Scrapeless com uma URL. Troque umpuppeteer.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()leunavigator.webdrivercomofalse, 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.
Introdução: conectar Puppeteer a um navegador que lê limpo
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.gotoacessa o conteúdo. - Localizar a sessão — fixe
proxyCountrypara que uma página se resolva da forma como um visitante naquele mercado a vê. - Enviar uma impressão digital consistente — passe um objeto
fingerprintpara que o agente do usuário, plataforma, tela e fuso horário permaneçam coerentes. - Persistir estado de login — carregue um
profileIdpara 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êntica —
page.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-coreinstalado (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
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
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
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.sessionTTLestá 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.
Conclusão: mesmo Puppeteer, navegador mais limpo
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.



