
スクレイパーを匿名化するためのブラウザフィンガープリンティングツール。Apify によって開発されました。
fingerprint-suite は、ブラウザフィンガープリントの生成と注入のための手作りのツール群です。
今日のWebサイトは、ユーザーを追跡し識別するためにフィンガープリントをますます利用しています。
fingerprint-suite を使うと、ブラウザフィンガープリントを生成してブラウザに注入できるため、スクレイパーをレーダーの下で飛ばすことができます。
当社のフィンガープリンティングツールや類似のプロジェクトで一緒に働きませんか? 採用情報はこちら!
fingerprint-suite は、ブラウザフィンガープリントの生成と注入のためのモジュラーツールキットです。以下の npm パッケージで構成されており、個別に使用することも、一緒に使用することもできます。
header-generator: 設定可能で現実的なHTTPヘッダーを生成しますfingerprint-generator: HTTPヘッダーとブラウザJS APIに影響を与える、現実的なブラウザフィンガープリントを生成しますfingerprint-injector: Playwright または Puppeteer で管理されているブラウザインスタンスにブラウザフィンガープリントを注入しますgenerative-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');
})();
いずれかのフィンガープリンティングツールでバグや問題を発見した場合は、GitHub で issue を送信してください。 ご質問は、Stack Overflow で質問するか、[email protected] までお問い合わせください。
コードの貢献は大歓迎です。永遠に称賛されるでしょう! 改善のアイデアがあれば、issue を送信するか、プルリクエストを作成してください。 貢献ガイドラインと行動規範については、 CONTRIBUTING.md を参照してください。
このプロジェクトは Apache License 2.0 の下でライセンスされています。 詳細は LICENSE.md ファイルを参照してください。