ドキュメントブラウザーと CrawlAgent Browserカスタムフィンガープリント

カスタムフィンガープリント

はじめに

ブラウザフィンガープリントは、ブラウザやデバイスの構成情報を活用して、ほぼ一意の「デジタルフィンガープリント」を生成し、クッキーがなくてもオンライン活動を追跡できるようにします。幸いなことに、スクレイピングブラウザではフィンガープリントの設定は任意です。当社はUser-Agent、タイムゾーン、言語、画面解像度といったコアパラメータに加え、カスタム起動パラメータによる拡張機能も提供しています。これは、複数アカウントの管理、データ収集、プライバシー保護などのシナリオに適しており、scrapelessが独自開発したChromiumブラウザを使用することで、検出を完全に回避できます。デフォルトでは、Scraping Browserサービスを利用すると各セッションごとにランダムなフィンガープリントが生成されます。

主な機能と制限事項

User-Agentの制御

  • 機能: User-Agent文字列のカスタマイズをサポートしており、HTTPリクエストヘッダー内でブラウザエンジンのバージョンやオペレーティングシステムの種類を定義できます。
  • 制限: 現在のところ、レンダリングエンジンの詳細(例:WebGLレンダリング機能)を変更することはできません。

画面解像度のマッピング

  • 機能: 基本的なデバイス画面サイズをシミュレートするために、 screen.width および screen.height の戻り値のカスタマイズをサポートしています(物理的なアスペクト比に準拠する必要があります)。
  • 制限: 現在のところ、デバイスピクセル比(DPR)やRetinaスクリーンの特性を偽装することはできません。

プラットフォーム属性の固定

  • 機能: 固定の戻り値を navigator.platform に設定でき(Windows/macOS/Linuxのみサポート)、ブラウザの機能検出ロジックに影響を与えます。
  • 制限: 現在のところ、オペレーティングシステムのバージョン番号やハードウェアアーキテクチャ情報の変更はできません。

その他の制限事項:

この機能は、ブラウザがネイティブに公開する標準化されたパラメータに対して限定的な調整のみをサポートしています。ハードウェアレベルのフィンガープリントや高度な行動マスキングには対応していません。

適用シナリオ

  • 基本的なマルチアカウント分離: User-Agentと画面解像度を変えることで、単純なアカウント関連付け検出を回避します。
  • 軽量データ収集: 主流のブラウザ環境(Windows + Chrome)をシミュレートし、ターゲットサイトの基本的なスクレイピング対策(例:User-Agentブラックリスト)を回避します。
  • 互換性テスト: 異なるOS(Windows/macOS)および画面サイズでの、ウェブサイトの基本的なレンダリングロジックを検証します。

操作ガイド

フィンガープリントパラメータの説明

パラメータ名型説明
userAgentstringブラウザのHTTPリクエストヘッダーにおけるUser-Agent文字列を定義します。これにはブラウザエンジン、バージョン番号、OSなどの識別情報が含まれます。ウェブサイトはこの値を使ってクライアント環境を識別し、コンテンツの適応や機能に影響を与えます。デフォルト値:ブラウザの設定に従う
platformenum実行環境のオペレーティングシステムの種類を示す、JavaScript navigator.platform プロパティの戻り値を指定します。使用可能な値は「Windows」「macOS」「Linux」です。このパラメータは、機能検出およびシステム関連機能の有効化判定に使用されます。デフォルト値:Windows
screenobjectブラウザが報告する表示デバイスの物理的特性パラメータを定義し、JavaScript window.screen オブジェクトに直接マッピングされます。
screen.widthnumber物理的な画面幅(ピクセル)、 screen.width プロパティにマッピングされ、メディアクエリやレスポンシブレイアウトに影響を与えます。デフォルト値:ランダムなフィンガープリントに従う、最小値640。
screen.heightnumber物理的な画面の高さ(ピクセル)、 screen.height プロパティにマッピングされ、幅とともにデバイスの解像度特性を決定します。デフォルト値:ランダムなフィンガープリントに従う、最小値480。
localizationobjectブラウザのローカライズ環境設定(言語、地域、タイムゾーンなど)を制御し、表示形式やコンテンツのローカライズ動作に影響を与えます。
localization.basedOnIpbooleanIPに基づいてタイムゾーンと言語を自動設定するかどうか。
localization.timezonestringIANAタイムゾーンデータベース形式に準拠したタイムゾーン識別子(例:「Asia/Shanghai」)。JavaScript日付オブジェクトおよび Intl.DateTimeFormat 出力のデフォルトタイムゾーン動作を制御し、タイムゾーンフィンガープリントの重要な構成要素です。デフォルト値:America/New_York
localization.languages[string]ブラウザがサポートする言語の優先順位リスト。 navigator.languages プロパティおよびHTTP Accept-Language リクエストヘッダーにマッピングされ、ウェブサイトのコンテンツ言語選択ロジックを決定します。デフォルト値:「en」「en-US」
argsobjectコマンドラインスイッチ(例: --window-size、 --proxy-bypass-listなど、詳細は 学習する)でブラウザを実行します。ただし、以下の引数はサポートされていません: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port

userAgent

タイプ: string 説明: ブラウザのHTTPリクエストヘッダー内のUser-Agent文字列を定義します。ブラウザエンジン、バージョン番号、オペレーティングシステムなどの重要な識別情報を含みます。ウェブサイトはこの値を使用してクライアント環境を識別し、コンテンツの適応や機能に影響を与えます。 任意のuserAgentをカスタマイズできます。

例の値:

  • Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
  • Mozilla/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

型: enum 説明:JavaScript navigator.platform プロパティの返り値を指定し、実行環境のオペレーティングシステムの種類を示します。このパラメータは、機能検出およびシステム関連機能の有効化判定に使用されます。

許容可能な値の例:

値説明
”Windows”Windowsオペレーティングシステム、デフォルト値
”macOS”macOSオペレーティングシステム
”Linux”Linuxオペレーティングシステム

screen

型: object 説明: ブラウザが報告するディスプレイデバイスの物理的特性パラメータを定義し、直接JavaScript window.screen オブジェクトにマッピングされます。

screen.width: 物理的な画面幅(ピクセル単位)。メディアクエリやレスポンシブレイアウトに影響し、最小値は640。 screen.height: 物理的な画面の高さ(ピクセル単位)。幅とともにデバイスの解像度特性を決定し、最小値は480。

値の例:

widthheight
19201080
1366768
1280720
7681280

localization

型: object 説明: ブラウザのローカライズ環境設定(言語、地域、タイムゾーンパラメータを含む)を制御し、表示形式やコンテンツのローカライズ動作に影響を与えます。

localization.basedOnIp: IPに基づいてタイムゾーンや言語を自動設定するかどうか。

localization.timezone: IANAタイムゾーンデータベース形式に準拠したタイムゾーン識別子。JavaScriptの日付オブジェクトや Intl.DateTimeFormat 出力のデフォルトタイムゾーン動作を制御し、タイムゾーンフィンガープリントの主要な構成要素です。

値の例:

  • America/New_York
  • Asia/Shanghai
  • Europe/London

localization.languages: ブラウザがサポートする言語の優先順位リスト。 navigator.languages プロパティおよびHTTP Accept-Language リクエストヘッダーにマッピングされ、ウェブサイトのコンテンツ言語選択ロジックを決定します。

値の例:

  • ["fr-FR", "en-US", "zh-CN"]
  • ["en-US", "es-ES", "de-DE"]

参照: tzデータベースのタイムゾーン一覧


args

型: object 説明: コマンドラインスイッチを使用してブラウザを実行します。 詳細はこちらをクリック。以下のargsはサポートされていないことに注意してください: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port

値の例:

  • プロキシバイパス: '--proxy-bypass-list': 'example.com'
  • ウィンドウサイズの設定: '--window-size': '1280,1024'。これを screen フィンガープリントと同じに設定することを推奨します。

と同じに設定することを推奨します。

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();
})();

倫理に関する声明

私たちは、責任あるフィンガープリントのカスタマイズを推奨しています:

  • 企業によるデータコンプライアンス収集、内部リスク管理テストなど、法的に許可されたシナリオでのみ使用してください。
  • 偽造されたフィンガープリントを使用してオンライン詐欺を行い、ユーザーのプライバシーを侵害することは禁止されています。