Dramaturgo Navegador de Impressão Digital Não Detectada Com Scrapeless
Specialist in Anti-Bot Strategies
TL;DR:
- O Playwright se conecta a qualquer navegador CDP com
chromium.connectOverCDP(), então apontá-lo para o Scrapeless é uma URL. Troque umchromium.launch()local por uma conexão ao navegador na nuvem e cada script é executado com uma identidade limpa. - Um navegador Playwright local vaza automação em três eixos: a flag
navigator.webdriver, uma impressão digital padrão para headless e seu próprio IP de saída. Sistemas anti-bot pontuam os três juntos. - O Scrapeless Scraping Browser responde a todos os três do lado do servidor — verdadeiro Chromium desenvolvido internamente, uma impressão digital por sessão consistente sem sinal
webdrivere saída residencial em mais de 195 países. - Seu código Playwright permanece inalterado.
page.goto,page.locator,page.evaluate, e esperas se comportam exatamente como fazem localmente; apenas a linha de conexão se move. - Verificado ao vivo: uma sessão
connectOverCDP()leunavigator.webdrivercomofalsee retornou o título real da página alvo através do navegador na nuvem Scrapeless. - Gratuito para começar. Novas contas Scrapeless incluem tempo de execução gratuito do Scraping Browser — inscreva-se em app.scrapeless.com.
Introdução: conecte o Playwright a um navegador que lê limpo
O Playwright controla o Chromium, Firefox ou WebKit através de uma única API. Lance o 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 para headless e sai de um IP que serviços de reputação já reconhecem.
Você pode atualizar cada um desses manualmente e continuar atualizando à medida que o Chromium e os detectores avançam. Existe um caminho mais curto. O Playwright se conecta a qualquer navegador que exponha um endpoint DevTools através de chromium.connectOverCDP(), e o Scrapeless Scraping Browser é um endpoint do Chrome DevTools Protocol acessado por um URL WebSocket. Apontar o Playwright para ele faz com que a impressão digital, superfície de comportamento e IP de saída se movam do 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 elimina desafios durante a renderização, então
page.gotoalcança o conteúdo. - Localizar a sessão — fixe
proxyCountrypara que uma página se resolva da maneira que um visitante daquele 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 — mantenha um
profileIdpara que cookies e armazenamento local sobrevivam entre execuções. - Escalar além da sua máquina — sessões são executadas na nuvem, não no seu laptop.
- Manter a automação idêntica — localizadores,
page.evaluate, cliques e esperas automáticas permanecem inalterados.
Por que o Scrapeless Scraping Browser
O Scrapeless Scraping Browser é um navegador na nuvem personalizável e anti-detecção projetado para coletores da web e agentes de IA. Para o Playwright especificamente, ele traz:
- Um verdadeiro Chromium desenvolvido internamente que executa JavaScript de página exatamente como o Chrome, então SPAs e desafios se resolvem.
- Uma impressão digital por sessão consistente — sem sinal
navigator.webdriver, sem vazamentos de padrões de headless. - 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, então um fluxo autenticado mantém 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
playwright-coreinstalado (nenhum navegador incorporado necessário — você se conecta a um remoto)- Uma conta Scrapeless e chave de API — inscreva-se em app.scrapeless.com
Os detalhes completos da conexão estão na documentação do Scraping Browser.
Instalação
Use playwright-core — ele ignora o download do navegador, já que o Chromium está na nuvem.
bash
npm install playwright-core
export SCRAPELESS_API_KEY=seu_token_api_aqui # chave gratuita em https://app.scrapeless.com
Configure a conexão
O endpoint é wss://browser.scrapeless.com/api/v2/browser, e cada opção é um parâmetro de consulta. Fique com proxyCountry para uma região residencial.
javascript
import { URLSearchParams } from "node:url";
function scrapelessEndpoint(extra = {}) {
```javascript
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180", // segundos
proxyCountry: "US",
...extra,
});
return `wss://browser.scrapeless.com/api/v2/browser?${params}`;
}
Conectar e executar
Substitua chromium.launch() por chromium.connectOverCDP() e passe o endpoint. Tudo o que vem a seguir é padrão do Playwright.
javascript
import { chromium } from "playwright-core";
import { URLSearchParams } from "node:url";
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180",
proxyCountry: "US",
});
const endpoint = `wss://browser.scrapeless.com/api/v2/browser?${params}`;
const browser = await chromium.connectOverCDP(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 browser.close();
Uma execução ao vivo deste script imprimia o título da página Ferramenta de Web Scraping Sem Esforço - Scrapeless e navigator.webdriver: false — a mesma API do Playwright que você já utiliza, acessada através 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 anunciada do navegador coerente — user agent, plataforma, tela e fuso horário estão todos de acordo. Codifique-o em JSON, codifique-o em URL e passe-o como mais um parâmetro. A especificação W3C WebDriver requer que a automação conformante exponha a flag webdriver; o navegador em nuvem não a carrega, portanto 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/Sao_Paulo" },
};
const endpoint = scrapelessEndpoint({ fingerprint: encodeURIComponent(JSON.stringify(fingerprint)) });
Onde o Playwright local para
Executar o Playwright em seu próprio Chromium é bom para páginas abertas e desprotegidas. A fricção começa onde o alvo scoreia o navegador: um intersticial de desafio que para em um IP de datacenter, uma página que imprime as configurações padrão headless ou uma parede de login que deseja uma identidade estável entre visitas. Cada um é um problema de impressão digital, comportamento ou IP — exatamente os três que o navegador em nuvem lida no servidor. Conectar-se ao Scrapeless transfere esses casos para uma sessão gerenciada enquanto seus localizadores e chamadas page permanecem idênticos.
O que você recebe de volta
A sessão se comporta como qualquer sessão do Playwright — localizadores, page.goto, page.evaluate, espera automática e cookies funcionam. Algumas observações honestas de sua execução sobre o navegador em nuvem:
navigator.webdriveréfalse, portanto, o primeiro verificador que um site executa se parece com um Chrome real.connectOverCDPretorna umBrowsernormal —newPage, contextos e localizadores permanecem inalterados.- 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 de comportamento se leia como uma visita normal.
Conclusão: mesmo Playwright, navegador mais limpo
O Playwright decide o que fazer; o Scrapeless decide como o navegador se parece para o site. A integração é uma linha — chromium.connectOverCDP() contra o navegador em nuvem — e o restante do seu script permanece inalterado. Defina proxyCountry para uma região residencial, passe uma fingerprint coerente e reutilize um profileId para fluxos autenticados. Para executar o mesmo navegador em nuvem do Python, consulte o guia de produção do Scrapling, e compare planos na página de preços do Scrapeless.
Pronto para construir seu pipeline de scraping com Playwright?
Junte-se à nossa comunidade para reivindicar um plano gratuito e conectar-se com desenvolvedores que estão construindo pipelines com Playwright: Discord · Telegram.
Inscreva-se em app.scrapeless.com para obter o runtime gratuito do Scraping Browser e aponte connectOverCDP() para o navegador em nuvem que seus alvos não conseguem identificar.
FAQ
P: Preciso mudar meu código Playwright?
Não. Você muda a forma como o navegador é obtido — chromium.connectOverCDP(endpoint) em vez de chromium.launch(). Cada localizador e chamada de page depois disso é idêntica.
P: playwright ou playwright-core?
Use playwright-core. Ele ignora o download do navegador porque você se conecta ao navegador em nuvem em vez de iniciar um local.
P: O connectOverCDP suporta os três mecanismos de navegador?
A conexão CDP é baseada no Chromium, que é o que o navegador em nuvem do Scrapeless expõe. Aponte chromium.connectOverCDP() para o endpoint; seus scripts direcionados ao Chromium são executados sem alterações.
P: Preciso de um proxy?
Não. A saída residencial está embutida — defina proxyCountry para uma região ou ANY. Não há um proxy separado para configurar.
P: A raspagem da web com Playwright é legal?
Acesso a dados publicamente disponíveis é 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 coisa 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.



