Impressão Digital Personalizada
Introdução
O fingerprinting 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 de impressão digital é opcional no navegador de scraping. Oferecemos profundas capacidades de personalização para impressões digitais de navegador, como parâmetros centrais como user agent do navegador, fuso horário, idioma e resolução de tela. A funcionalidade pode ser estendida através de parâmetros de inicialização personalizados. Isso é adequado para cenários como gerenciamento de múltiplas contas, coleta de dados e proteção de privacidade, usando o navegador Chromium auto-construído da Scrapeless para evitar completamente a detecção. Por padrão, usar nosso serviço de Navegador de Scraping gerará uma impressão digital aleatória para cada sessão.
Capacidades e Limitações Principais
Controle de 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 motor do navegador e do tipo de sistema operacional.
- Limitação: Atualmente incapaz de modificar detalhes do motor de renderização (por exemplo, recursos de renderização WebGL).
Mapeamento de Resolução de Tela
- Capacidade: Suporta a personalização dos valores de retorno para
screen.widthescreen.heightpara simular tamanhos básicos de tela de dispositivo (deve estar em conformidade com as proporções físicas). - Limitação: Atualmente incapaz de falsificar a proporção de pixels do dispositivo (DPR) ou as características de 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 incapaz de modificar o número da versão do sistema operacional ou informações de arquitetura de hardware.
Outras Limitações:
Este recurso suporta apenas ajustes limitados a parâmetros padronizados expostos nativamente pelo navegador. Não envolve fingerprinting em nível de hardware ou mascaramento comportamental avançado.
Cenários de Aplicação
- Isolamento Básico de Múltiplas Contas: Evite a detecção de associação de contas simples diferenciando o User-Agent e a resolução de tela.
- Coleta de Dados Leve: Simule um ambiente de navegador convencional (Windows + Chrome) para contornar as estratégias básicas anti-scraping do site alvo (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 dos Parâmetros da Impressão Digital
| Nome do Parâmetro | Tipo | Descrição |
|---|---|---|
| userAgent | string | Define a string User-Agent no cabeçalho da solicitação HTTP do navegador, contendo informações de identificação importantes, como o motor do navegador, número da versão e sistema operacional. Os sites usam este valor para identificar o ambiente do cliente, afetando a adaptação e a funcionalidade do conteúdo. 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 tempo de execução. Os valores opcionais são “Windows”, “macOS” ou “Linux”. Este parâmetro será usado para detecção de recursos e julgamento de ativação de funções relacionadas ao sistema. Valor padrão: Windows |
| screen | object | Define os parâmetros das 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 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 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 do conteúdo. |
| localization.basedOnIp | boolean | Define se deve definir automaticamente o fuso horário e os idiomas com base no IP. |
| localization.timezone | string | Um identificador de fuso horário em conformidade com o formato do banco de dados de fuso horário da IANA (por exemplo, “Asia/Shanghai”), controlando o comportamento padrão do fuso horário de objetos de data JavaScript e a saída de Intl.DateTimeFormat, que é um componente chave da impressão digital de fuso horário. Valor padrão: America/New_York |
| localization.languages | [string] | A lista de prioridade de idiomas suportados 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 do conteúdo do site. Valor padrão: “en”, “en-US” |
| args | object | Executa o navegador com chaves de linha de comando (por exemplo, --window-size, --proxy-bypass-list, etc, saiba mais), observe que os seguintes argumentos não são suportados: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port |
userAgent
Tipo: string
Descrição: Define a string User-Agent no cabeçalho da solicitação HTTP do navegador, contendo informações de identificação importantes, como o motor do navegador, número da versão e sistema operacional. Os sites usam este valor para identificar o ambiente do cliente, afetando a adaptação e a funcionalidade do conteúdo.
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.36Mozilla/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 tempo de execução. Este parâmetro será usado para detecção de recursos e 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 das 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 do conteúdo.
localization.basedOnIp: Define se deve definir automaticamente o fuso horário e os idiomas com base no IP.
localization.timezone: Um identificador de fuso horário em conformidade com o formato do banco de dados de fuso horário da IANA, controlando o comportamento padrão do fuso horário de objetos de data JavaScript e a saída de Intl.DateTimeFormat, que é um componente chave da impressão digital de fuso horário.
Valores de Exemplo:
America/New_YorkAsia/ShanghaiEurope/London
localization.languages: A lista de prioridade de idiomas suportados 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 do 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
args
Tipo: object
Descrição: Executa o navegador com chaves de linha de comando, clique para saber mais, observe que os seguintes argumentos não são suportados: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port
Valores de Exemplo:
- proxy bypass:
'--proxy-bypass-list': 'example.com' - set windows size:
'--window-size': '1280,1024', it is recommended to set the same as thescreenfingerprint
Exemplo de Código
const { ScrapelessClient } = require('@scrapeless-ai/sdk');
const puppeteer =require('puppeteer-core');
const client = new ScrapelessClient({ apiKey: 'API Key' });
// 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',
},
args: {
'--proxy-bypass-list': 'example.com',
'--window-size': '1280,1024' // set window size as the same as the screen fingerprint
}
}
// Create browser session and get WebSocket endpoint
const { browserWSEndpoint } = client.browser.create({
sessionName: 'sdk_test',
sessionTTL: 180,
proxyCountry: 'US',
sessionRecording: true,
fingerprint,
});
(async () => {
const browser = await puppeteer.connect({browserWSEndpoint});
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:
- Apenas para cenários legalmente autorizados (como coleta de dados para conformidade empresarial, testes internos de controle de risco).
- É proibido usar impressões digitais falsificadas para se envolver em fraudes online ou infringir a privacidade do usuário.