
Инструменты для снятия цифровых отпечатков браузера, предназначенные для анонимизации ваших скраперов. Разработано Apify.
fingerprint-suite — это собранный вручную набор инструментов для генерации и внедрения отпечатков браузера.
Современные веб-сайты всё чаще используют отпечатки браузера (fingerprinting) для отслеживания пользователей и их идентификации.
С помощью fingerprint-suite вы можете генерировать и внедрять отпечатки браузера в ваш браузер, позволяя вашим скраперам оставаться незамеченными.
Хотите работать с нами над нашими инструментами для отпечатков браузера или похожими проектами? Мы нанимаем!
fingerprint-suite — это модульный набор инструментов для генерации и внедрения отпечатков браузера. Он состоит из следующих пакетов npm, которые вы можете использовать по отдельности или вместе:
header-generator: генерирует настраиваемые реалистичные HTTP-заголовкиfingerprint-generator: генерирует реалистичные отпечатки браузера, влияющие на HTTP-заголовки и JS API браузераfingerprint-injector: внедряет отпечатки браузера в управляемый экземпляр браузера Playwright или Puppeteergenerative-bayesian-network: наша быстрая реализация байесовской генеративной сети, используемая для генерации реалистичных отпечатков браузераСледующий пример показывает, как использовать инструменты для отпечатков браузера, чтобы замаскировать ваш управляемый через Playwright экземпляр Chromium.
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
})();
Вот тот же пример с использованием 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');
})();
Если вы обнаружите какую-либо ошибку или проблему с любым из инструментов для отпечатков браузера, пожалуйста, создайте issue на GitHub. По вопросам вы можете обратиться на Stack Overflow или связаться по адресу [email protected]
Ваш вклад в код приветствуется, и вас будут восхвалять вечность! Если у вас есть идеи по улучшению, либо создайте issue, либо отправьте pull request. Рекомендации по внесению вклада и кодекс поведения см. в CONTRIBUTING.md.
Этот проект лицензирован в соответствии с Apache License 2.0 — подробности см. в файле LICENSE.md.