
Ferramentas de fingerprinting de navegador para anonimizar seus scrapers. Desenvolvidas pela Apify.
fingerprint-suite é um conjunto artesanal de ferramentas para geração e injeção de fingerprints de navegador.
Hoje em dia, os sites usam cada vez mais fingerprinting para rastrear usuários e identificá-los.
Com a ajuda do fingerprint-suite, você pode gerar e injetar fingerprints de navegador no seu navegador, permitindo que seus scrapers passem despercebidos.
Gostaria de trabalhar conosco em nossas ferramentas de fingerprinting ou projetos semelhantes? Estamos contratando!
fingerprint-suite é um kit de ferramentas modular para geração e injeção de fingerprints de navegador. Ele é composto pelos seguintes pacotes npm, que você pode usar separadamente ou em conjunto:
header-generator: gera cabeçalhos HTTP realistas e configuráveisfingerprint-generator: gera fingerprints de navegador realistas, afetando os cabeçalhos HTTP e as APIs JS do navegadorfingerprint-injector: injeta fingerprints de navegador na sua instância de navegador gerenciada por Playwright ou Puppeteergenerative-bayesian-network: nossa implementação rápida de uma rede generativa bayesiana usada para gerar fingerprints de navegador realistasO exemplo a seguir mostra como usar as ferramentas de fingerprinting para camuflar sua instância do Chromium gerenciada pelo Playwright.
import { chromium } from 'playwright';
import { newInjectedContext } from 'fingerprint-injector';
(async () => {
const browser = await chromium.launch({ headless: false });
const context = await newInjectedContext(browser, {
// Constraints for the generated fingerprint (optional)
fingerprintOptions: {
devices: ['mobile'],
operatingSystems: ['ios'],
},
// Playwright's newContext() options (optional, random example for illustration)
newContextOptions: {
geolocation: {
latitude: 51.50853,
longitude: -0.12574,
},
},
});
const page = await context.newPage();
// ... your code using `page` here
})();
Aqui está o mesmo exemplo usando Puppeteer:
import puppeteer from 'puppeteer';
import { newInjectedPage } from 'fingerprint-injector';
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await newInjectedPage(browser, {
// constraints for the generated fingerprint
fingerprintOptions: {
devices: ['mobile'],
operatingSystems: ['ios'],
},
});
// ... your code using `page` here
await page.goto('https://example.com');
})();
Se você encontrar algum bug ou problema com qualquer uma das ferramentas de fingerprinting, por favor abra uma issue no GitHub. Para dúvidas, você pode perguntar no Stack Overflow ou entrar em contato com [email protected]
Suas contribuições de código são bem-vindas e você será elogiado pela eternidade! Se você tiver alguma ideia de melhoria, envie uma issue ou crie um pull request. Para as diretrizes de contribuição e o código de conduta, veja CONTRIBUTING.md.
Este projeto é licenciado sob a Apache License 2.0 - veja o arquivo LICENSE.md para detalhes.