Impressões Digitais de Navegador Personalizadas: Controle os Sinais que os Sites Leem
Specialist in Anti-Bot Strategies
TL;DR:
- Uma impressão digital do navegador é o conjunto de sinais que um site lê para identificar seu navegador — agente do usuário, plataforma, tela, fuso horário, idioma, canvas e WebGL. Quando eles não concordam, a automação é sinalizada.
- O Scrapeless Scraping Browser permite que você defina a impressão digital explicitamente. Passe um objeto
fingerprinte o navegador na nuvem relata exatamente esses valores, mantidos internamente consistentes. - A substituição é real, não cosmeticamente. Em uma execução ao vivo,
navigator.userAgent,navigator.platform(Win32), o fuso horário resolvido (Asia/Hong_Kong) enavigator.languageretornaram exatamente como os valores definidos — verificado abaixo. - A consistência é o ponto. Um agente de usuário dos EUA com um fuso horário de Hong Kong e um IP de datacenter é o tipo de discrepância que os sistemas anti-bot procuram; defina a impressão digital e a saída para contar uma história coerente.
- Ela se baseia em uma conexão padrão do Puppeteer. A impressão digital é um parâmetro de consulta no endpoint do WebSocket; seu código de navegação permanece inalterado.
- Grátis para começar. Novas contas do Scrapeless incluem tempo de execução gratuito do Scraping Browser — inscreva-se em app.scrapeless.com.
Introdução: o navegador está te denunciando
Cada página que você carrega lê um conjunto de sinais para decidir que tipo de cliente você é: a string do agente do usuário, a plataforma, o tamanho da tela, o idioma e o fuso horário, e valores mais profundos, como a impressão digital do canvas e do WebGL. Um navegador real relata isso de forma consistente — um Chrome configurado para os EUA no Windows tem um fuso horário semelhante ao dos EUA, uma plataforma correspondente e uma tela normal. A automação tende a vazar uma história diferente: um padrão headless aqui, um fuso horário discrepante ali, uma bandeira navigator.webdriver que nenhum navegador humano define.
O Scrapeless Scraping Browser permite que você defina essa história intencionalmente. Você passa um objeto fingerprint ao abrir a sessão, e o navegador na nuvem relata exatamente esses valores — de maneira coerente, para que os sinais concordem entre si. Este guia cobre os campos da impressão digital, como defini-los em uma conexão padrão do Puppeteer e uma verificação ao vivo de que a substituição realmente acontece.
O que você pode controlar
- Agente do usuário — a string completa do UA que o navegador relata.
- Plataforma —
Windows,macOS, ouLinux, refletida emnavigator.platform. - Tela — a largura e a altura relatadas.
- Localização — o
fuso horárioe a lista ordenada deidiomas. - Args de lançamento — flags do Chromium como tamanho da janela.
Os valores são mantidos internamente consistentes, então o navegador não relata uma plataforma Windows com um agente do usuário macOS.
Por que Scrapeless Scraping Browser
O Scrapeless Scraping Browser é um navegador em nuvem anti-deteção personalizável, projetado para crawlers da web e agentes de IA. Para controle de impressão digital especificamente, ele traz:
- Campos de impressão digital explícitos — agente do usuário, plataforma, tela, fuso horário e idiomas definidos por sessão.
- Consistência interna — sem sinal
navigator.webdriver, e os valores que você definiu concordam entre si. - Proxies residenciais em mais de 195 países — combine a região da impressão digital com saída correspondente para que os dois sinais se alinhem.
- Uma conexão padrão do Puppeteer —
puppeteer.connect()retorna umBrowsercomum; a impressão digital é definida na URL do endpoint.
Obtenha sua chave de API no plano gratuito em app.scrapeless.com.
Requisitos
- Node.js 18 ou mais recente
- Uma conta Scrapeless e chave de API — inscreva-se em app.scrapeless.com
- Familiaridade básica com Puppeteer
Instalação
bash
npm install puppeteer-core
bash
export SCRAPELESS_API_KEY="seu_token_api_aqui"
Definindo uma impressão digital
Construa o objeto de impressão digital, codifique-o em URL e passe-o como o parâmetro de consulta fingerprint no endpoint do WebSocket. Todo o restante é uma sessão normal do Puppeteer:
javascript
import puppeteer from 'puppeteer-core';
const fingerprint = {
userAgent:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/134.0.0.0 Safari/537.36',
platform: 'Windows',
screen: { width: 1280, height: 1024 },
localization: { languages: ['pt-BR', 'pt'], timezone: 'Asia/Hong_Kong' },
args: { '--window-size': '1280,1024' },
};
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: '180',
proxyCountry: 'ANY',
fingerprint: encodeURIComponent(JSON.stringify(fingerprint)),
});
const browser = await puppeteer.connect({
browserWSEndpoint: `wss://browser.scrapeless.com/api/v2/browser?${params}`,
});
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
await browser.close();
Confirmando que a substituição teve efeito
Leia os sinais de volta de dentro da página para confirmar que correspondem ao que você definiu:
javascript
const reported = await page.evaluate(() => ({
userAgent: navigator.userAgent,
platform: navigator.platform,
fuso horário: Intl.DateTimeFormat().resolvedOptions().timeZone,
idioma: navigator.language,
}));
console.log(reported);
// {
// userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) … Chrome/134.0.0.0 Safari/537.36",
// plataforma: "Win32",
// fuso horário: "Asia/Hong_Kong",
// idioma: "en-US"
// }
Em uma execução ao vivo, os quatro valores retornaram como os valores da impressão digital — o user agent literalmente, `plataforma` como `Win32` (de `platform: 'Windows'`), o fuso horário resolvido como `Asia/Hong_Kong`, e o idioma como `en-US`. A substituição chega ao ambiente JavaScript que a página realmente lê, não apenas ao cabeçalho da solicitação.
> Obtenha sua chave de API no plano gratuito: [app.scrapeless.com](https://app.scrapeless.com/passport/login/?utm_source=website&utm_medium=blog&utm_campaign=scrapingbrowser&utm_term=custom-browser-fingerprint)
---
## Faça os sinais concordarem
Uma impressão digital ajuda apenas quando suas partes contam uma única história. As incompatibilidades comuns que fazem uma sessão ser sinalizada:
- **Fuso horário vs. IP** — um fuso horário de Hong Kong por trás de uma saída dos EUA é lido como inconsistente. Defina `proxyCountry` para uma região que corresponda ao fuso horário e idiomas ou defina o fuso horário para corresponder à saída. O manuseio do fuso horário segue as zonas IANA referenciadas por <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions" rel="nofollow"><strong>a API Intl.DateTimeFormat</strong></a>.
- **Plataforma vs. user agent** — uma plataforma `Windows` com uma string UA macOS é uma contradição. Mantenha o campo da plataforma e o token do SO do UA alinhados; a gramática do UA é definida em <a href="https://datatracker.ietf.org/doc/html/rfc9110#name-user-agent" rel="nofollow"><strong>a especificação semântica HTTP</strong></a>.
- **Idioma vs. região** — ordene `languages` da forma como um usuário naquela região faria, com o local principal primeiro.
- **Tela vs. janela** — mantenha as dimensões da `screen` e o argumento `--window-size` sensatos para o dispositivo que você está simulando.
Esses sinais são exatamente o tipo de indícios de cliente automatizado catalogados em <a href="https://owasp.org/www-project-automated-threats-to-web-applications/" rel="nofollow"><strong>o projeto OWASP Automated Threats</strong></a> — a coerência entre eles é o que um verdadeiro navegador possui e um bot descuidado não tem.
---
## Padrões avançados
**Rotacione impressões digitais entre sessões, não dentro de uma.** Mantenha uma impressão digital estável durante a vida de uma sessão para que a história não mude durante a visita; varie-a entre sessões, em vez disso.
**Fixe a saída à região da impressão digital.** Defina `proxyCountry` (e `proxyState`/`proxyCity` quando necessário) para corresponder ao fuso horário e aos idiomas que você escolheu.
**Persistir uma identidade com um perfil.** Quando você precisar da mesma identidade em várias execuções, pare a impressão digital com um perfil de navegador para que cookies e armazenamento sejam preservados.
**Mantenha-o plausível.** Uma impressão digital que nenhum dispositivo real produziria é tão suspeita quanto uma padrão — use valores que descrevam um navegador que realmente existe.
---
## Conclusão: uma identidade coerente
Uma impressão digital personalizada não é um único truque — é a diferença entre um navegador que relata uma identidade consistente e um que se contradiz. Defina o user agent, plataforma, tela, fuso horário e idiomas juntos, fixe a saída para corresponder e os valores que um site lê concordam da mesma forma que os de um verdadeiro navegador. Combine isso com os controles de sessão do [Scraping Browser](https://www.scrapeless.com/pt/product/scraping-browser?utm_source=website&utm_medium=blog&utm_campaign=scrapingbrowser&utm_term=custom-browser-fingerprint) e saída residencial, informe-se sobre [por que a reputação do IP importa](https://www.scrapeless.com/pt/blog/what-is-a-cloud-proxy?utm_source=website&utm_medium=blog&utm_campaign=scrapingbrowser&utm_term=custom-browser-fingerprint), e a [documentação](https://docs.scrapeless.com) cobre todos os campos.
---
## Pronto para construir seu pipeline de dados alimentado por IA?
Junte-se à nossa comunidade para reivindicar um plano gratuito e conectar-se com desenvolvedores que constroem fluxos de trabalho de anti-detecção: [Discord](https://discord.gg/VU2vtbq7Q2) · [Telegram](https://t.me/scrapeless).
Inscreva-se em [app.scrapeless.com](https://app.scrapeless.com/passport/login/?utm_source=website&utm_medium=blog&utm_campaign=scrapingbrowser&utm_term=custom-browser-fingerprint) para um tempo de execução gratuito do Scraping Browser e veja [preços](https://www.scrapeless.com/pt/pricing?utm_source=website&utm_medium=blog&utm_campaign=scrapingbrowser&utm_term=custom-browser-fingerprint) para escala.
---
## FAQ
**P: O que é uma impressão digital de navegador?**
O conjunto de sinais que um site lê para identificar seu navegador — user agent, plataforma, tamanho da tela, fuso horário, idioma e valores mais profundos como canvas e WebGL. Os sites combinam eles em um identificador e sinalizam combinações que não parecem um dispositivo real.
**P: Definir a impressão digital realmente muda o que a página vê?**
Sim. Em uma execução ao vivo, `navigator.userAgent`, `navigator.platform`, o fuso horário resolvido e `navigator.language` retornaram todos os valores definidos na sessão — a substituição alcança o ambiente JavaScript, não apenas o cabeçalho da solicitação.
**P: O fuso horário deve corresponder ao país do proxy?**
Sim. Um fuso horário que contradiz a região do IP de saída é uma bandeira comum. Defina `proxyCountry` para corresponder ao fuso horário e idiomas da impressão digital, ou defina o fuso horário para corresponder à saída.
**P: Posso rotacionar impressões digitais?**
Rotacione entre sessões, não dentro de uma. Uma impressão digital que muda durante a sessão é um sinal por si só; mantenha-a estável por sessão e varie-a entre sessões.
**P: Eu preciso de um agente de IA ou SDK para isso?**
Não. A impressão digital é um parâmetro de consulta no endpoint padrão do Puppeteer WebSocket — use `puppeteer.connect()` puro, sem agente necessário.
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.



