ホームページ > ウェブフロントエンド > jsチュートリアル > Web サイトは Selenium 自動化をどのように検出し、どのように回避できるのでしょうか?

Web サイトは Selenium 自動化をどのように検出し、どのように回避できるのでしょうか?

Linda Hamilton
リリース: 2024-12-17 22:38:19
オリジナル
961 人が閲覧しました

How Do Websites Detect Selenium Automation, and How Can It Be Circumvented?

Web サイトによる Selenium の検出

Selenium と Chromedriver はブラウザの自動化を提供しますが、一部の Web サイトは Selenium インスタンスの使用を検出する機能を備えています。明示的な自動化がないにもかかわらず。この機能により、これらの Web サイトがこの検出をどのように実行するかという疑問が生じます。

検出技術

Web サイトは、Selenium の存在を識別するためにさまざまな技術を採用しています。一般的な方法の 1 つは、Selenium が動作しているときに出現する事前定義された JavaScript 変数を調べることです。これらの変数には、「selenium」または「webdriver」という用語が含まれることが多く、$cdc_ や $wdc_ などのウィンドウ オブジェクトやドキュメント変数で検出できます。検出メカニズムは、使用されているブラウザによって異なります。

対策

Web サイトの検出を回避する 1 つのアプローチは、特定の JavaScript 変数の存在を削除または変更することです。たとえば、Chrome では、chromedriver のソース コードを変更して $cdc_ を別の変数名に変更することが効果的であることがわかっています。

ボット検出用の擬似コード

いくつかボット ネットワークは、複雑なアルゴリズムを利用して Selenium の使用を検出する場合があります。次の疑似コードは、潜在的な検出手法を垣間見ることができます:

runBotDetection = function () {

    // Check for window-specific detection keys
    for (windowDetectionKey in windowDetectionKeys) {
        if (window[windowDetectionKeyValue]) {
            return true;
        }
    }

    // Check for document-specific detection keys
    for (documentDetectionKey in documentDetectionKeys) {
        if (window['document'][documentDetectionKeyValue]) {
            return true;
        }
    }

    // Inspect document for specific patterns
    for (documentKey in window['document']) {
        if (documentKey.match(/$[a-z]dc_/) && window['document'][documentKey]['cache_']) {
            return true;
        }
    }

    // Check for additional external indicators
    if (window['external'] && window['external'].toString() && (window['external'].toString()['indexOf']('Sequentum') != -1)) return true;

    // Examine HTML element attributes
    if (window['document']['documentElement']['getAttribute']('selenium')) return true;
    if (window['document']['documentElement']['getAttribute']('webdriver')) return true;
    if (window['document']['documentElement']['getAttribute']('driver')) return true;

    return false;
};
ログイン後にコピー

追加のメソッド

JavaScript 変数の変更に加えて、Selenium の検出を回避するための他の手法には次のものがあります。

  • を使用するVPN: VPN はユーザーの IP アドレスを一時的にマスクできますが、その後のリクエスト後に検出される可能性があります。
  • ユーザー エージェントの変更: ユーザー エージェント文字列を変更すると、Web ブラウザーが通常のユーザーのように表示されます。
  • ブラウザ プラグインの無効化: 特定のプラグインSelenium の存在を明らかにする可能性のある情報が公開される可能性があります。
  • ヘッダーの変更: HTTP ヘッダーを操作して、一般的なユーザーのトラフィックに近づけることができます。
  • プロキシの使用サーバー: プロキシ サーバーは、ユーザーの接続。

以上がWeb サイトは Selenium 自動化をどのように検出し、どのように回避できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート