
Strumenti di fingerprinting del browser per anonimizzare i tuoi scraper. Sviluppati da Apify.
fingerprint-suite è una raccolta artigianale di strumenti per la generazione e l'iniezione di fingerprint del browser.
I siti web odierni usano sempre più spesso il fingerprinting per tracciare gli utenti e identificarli.
Con l'aiuto di fingerprint-suite puoi generare e iniettare fingerprint del browser nel tuo browser, permettendoti di far passare i tuoi scraper inosservati.
Ti piacerebbe lavorare con noi sui nostri strumenti di fingerprinting o su progetti simili? Stiamo assumendo!
fingerprint-suite è un toolkit modulare per la generazione e l'iniezione di fingerprint del browser. È composto dai seguenti pacchetti npm, che puoi utilizzare separatamente o insieme:
header-generator: genera header HTTP realistici e configurabilifingerprint-generator: genera fingerprint del browser realistici, influenzando gli header HTTP e le API JS del browserfingerprint-injector: inietta fingerprint del browser nella tua istanza del browser gestita da Playwright o Puppeteergenerative-bayesian-network: la nostra implementazione veloce di una rete generativa bayesiana utilizzata per generare fingerprint del browser realisticiIl seguente esempio mostra come utilizzare gli strumenti di fingerprinting per camuffare la tua istanza di Chromium gestita da 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
})();
Ecco lo stesso esempio con 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 trovi un bug o un problema con uno qualsiasi degli strumenti di fingerprinting, ti preghiamo di aprire una segnalazione su GitHub. Per domande, puoi chiedere su Stack Overflow o contattare [email protected]
I tuoi contributi al codice sono benvenuti e sarai lodato per l'eternità! Se hai idee per miglioramenti, apri una segnalazione o crea una pull request. Per le linee guida sui contributi e il codice di condotta, consulta CONTRIBUTING.md.
Questo progetto è concesso in licenza sotto la Apache License 2.0 - consulta il file LICENSE.md per i dettagli.