Impressão Digital Personalizada
Introdução
A impressão digital do navegador utiliza as informações de configuração do seu navegador e dispositivo para criar uma “impressão digital” quase única, que pode ser usada para rastrear sua atividade online mesmo sem cookies. A boa notícia é que a configuração da impressão digital é opcional no navegador de raspagem. Oferecemos recursos de personalização profunda para impressões digitais de navegadores, como parâmetros principais, como agente do usuário do navegador, fuso horário, idioma e resolução de tela. A funcionalidade pode ser estendida por meio de parâmetros de inicialização personalizados. Isso é adequado para cenários como gerenciamento de várias contas, coleta de dados e proteção de privacidade, usando o navegador Chromium autoconstruído do scrapeless para evitar completamente a detecção. Por padrão, o uso do nosso serviço Scraping Browser gerará uma impressão digital aleatória para cada sessão.
Capacidades e Limitações Principais
Controle do User-Agent
- Capacidade: Suporta a personalização da string User-Agent nos cabeçalhos de solicitação HTTP, permitindo a definição da versão do mecanismo do navegador e do tipo de sistema operacional.
- Limitação: Atualmente, não é possível modificar os detalhes do mecanismo de renderização (por exemplo, recursos de renderização WebGL).
Mapeamento da Resolução da Tela
- Capacidade: Suporta a personalização dos valores de retorno para
screen.width
escreen.height
para simular tamanhos de tela de dispositivos básicos (deve estar de acordo com as proporções de aspecto físicas). - Limitação: Atualmente, não é possível falsificar a proporção de pixels do dispositivo (DPR) ou as características da tela Retina.
Bloqueio de Atributo de Plataforma
- Capacidade: Permite definir um valor de retorno fixo para
navigator.platform
(apenas Windows/macOS/Linux são suportados), o que afeta a lógica de detecção de recursos do navegador. - Limitação: Atualmente, não é possível modificar o número da versão do sistema operacional ou as informações de arquitetura de hardware.
Outras Limitações:
Este recurso suporta apenas ajustes limitados em parâmetros padronizados expostos nativamente pelo navegador. Não envolve impressão digital em nível de hardware ou mascaramento comportamental avançado.
Cenários de Aplicação
- Isolamento Básico de Contas Múltiplas: Evite a detecção simples de associação de contas diferenciando o User-Agent e a resolução da tela.
- Coleta de Dados Leve: Simule um ambiente de navegador principal (Windows + Chrome) para contornar as estratégias básicas anti-raspagem do site de destino (por exemplo, lista negra de User-Agent).
- Teste de Compatibilidade: Verifique a lógica de renderização básica do site em diferentes sistemas operacionais (Windows/macOS) e tamanhos de tela.
Guia de Operação
Descrição do Parâmetro de Impressão Digital
Nome do Parâmetro | Tipo | Descrição |
---|---|---|
userAgent | string | Define a string User-Agent no cabeçalho de solicitação HTTP do navegador, contendo informações de identificação importantes, como o mecanismo do navegador, o número da versão e o sistema operacional. Os sites usam esse valor para identificar o ambiente do cliente, afetando a adaptação de conteúdo e a funcionalidade. Valor padrão: Segue o navegador |
platform | enum | Especifica o valor de retorno da propriedade JavaScript navigator.platform , indicando o tipo de sistema operacional do ambiente de execução. Os valores opcionais são “Windows”, “macOS” ou “Linux”. Este parâmetro será usado para detecção de recursos e o julgamento de ativação de funções relacionadas ao sistema. Valor padrão: Windows |
screen | object | Define os parâmetros de características físicas do dispositivo de exibição relatados pelo navegador, mapeados diretamente para o objeto JavaScript window.screen . |
screen.width | number | Largura física da tela (pixels), mapeada para a propriedade screen.width , afetando consultas de mídia e layout responsivo. Valor padrão: Segue a impressão digital aleatória, valor mínimo 640. |
screen.height | number | Altura física da tela (pixels), mapeada para a propriedade screen.height , determinando as características de resolução do dispositivo juntamente com a largura. Valor padrão: Segue a impressão digital aleatória, valor mínimo 480. |
localization | object | Controla a configuração do ambiente de localização do navegador, incluindo parâmetros de idioma, região e fuso horário, afetando o formato de exibição e o comportamento de localização de conteúdo. |
localization.timezone | string | Um identificador de fuso horário que está de acordo com o formato do banco de dados de fuso horário IANA (por exemplo, “Asia/Shanghai”), controlando o comportamento do fuso horário padrão dos objetos de data JavaScript e a saída Intl.DateTimeFormat , que é um componente chave da impressão digital do fuso horário. Valor padrão: America/New_York |
localization.languages | [string] | A lista de prioridade de idioma suportada pelo navegador, mapeada para a propriedade navigator.languages e o cabeçalho de solicitação HTTP Accept-Language , determinando a lógica de seleção de idioma de conteúdo do site. Valor padrão: “en”, “en-US” |
userAgent
Tipo: string
Descrição: Define a string User-Agent no cabeçalho de solicitação HTTP do navegador, contendo informações de identificação importantes, como o mecanismo do navegador, o número da versão e o sistema operacional. Os sites usam esse valor para identificar o ambiente do cliente, afetando a adaptação de conteúdo e a funcionalidade.
Valores de Exemplo:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
platform
Tipo: enum
Descrição: Especifica o valor de retorno da propriedade JavaScript navigator.platform
, indicando o tipo de sistema operacional do ambiente de execução. Este parâmetro será usado para detecção de recursos e o julgamento de ativação de funções relacionadas ao sistema.
Valores Aceitáveis de Exemplo:
Valor | Descrição |
---|---|
”Windows” | Sistema operacional Windows, valor padrão |
”macOS” | Sistema operacional macOS |
”Linux” | Sistema operacional Linux |
screen
Tipo: object
Descrição: Define os parâmetros de características físicas do dispositivo de exibição relatados pelo navegador, mapeados diretamente para o objeto JavaScript window.screen
.
screen.width: Largura física da tela (pixels), afetando consultas de mídia e layout responsivo, valor mínimo 640. screen.height: Altura física da tela (pixels), determinando as características de resolução do dispositivo juntamente com a largura, valor mínimo 480.
Valores de Exemplo:
width | height |
---|---|
1920 | 1080 |
1366 | 768 |
1280 | 720 |
768 | 1280 |
localization
Tipo: object
Descrição: Controla a configuração do ambiente de localização do navegador, incluindo parâmetros de idioma, região e fuso horário, afetando o formato de exibição e o comportamento de localização de conteúdo.
localization.timezone: Um identificador de fuso horário que está de acordo com o formato do banco de dados de fuso horário IANA, controlando o comportamento do fuso horário padrão dos objetos de data JavaScript e a saída Intl.DateTimeFormat
, que é um componente chave da impressão digital do fuso horário.
Valores de Exemplo:
America/New_York
Asia/Shanghai
Europe/London
localization.languages: A lista de prioridade de idioma suportada pelo navegador, mapeada para a propriedade navigator.languages
e o cabeçalho de solicitação HTTP Accept-Language
, determinando a lógica de seleção de idioma de conteúdo do site.
Valores de Exemplo:
["fr-FR", "en-US", "zh-CN"]
["en-US", "es-ES", "de-DE"]
Referência: lista de fusos horários do banco de dados tz
Código de Exemplo
const puppeteer =require('puppeteer-core');
// custom browser fingerprint
const fingerprint = {
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.1.2.3 Safari/537.36',
platform: 'Windows',
screen: {
width: 1280, height: 1024
},
localization: {
languages: ['zh-HK', 'en-US', 'en'], timezone: 'Asia/Hong_Kong',
}
}
const query = new URLSearchParams({
token: 'APIKey',// required
session_ttl: 180,
proxy_country: 'ANY',
fingerprint: encodeURIComponent(JSON.stringify(fingerprint)),
});
const connectionURL = `wss://browser.scrapeless.com/browser?${query.toString()}`;
(async () => {
const browser = await puppeteer.connect({browserWSEndpoint: connectionURL});
const page = await browser.newPage();
await page.goto('https://www.scrapeless.com');
const info = await page.evaluate(() => {
return {
screen: {
width:screen.width,
height:screen.height,
},
userAgent:navigator.userAgent,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
languages:navigator.languages
};
});
console.log(info);
await browser.close();
})();
Declaração Ética
Defendemos a personalização responsável da impressão digital:
- Somente para cenários legalmente autorizados (como coleta de conformidade de dados corporativos, testes internos de controle de risco).
- É proibido usar impressões digitais falsificadas para se envolver em fraudes online ou violar a privacidade do usuário.