本文へスキップ

オープンソースの selenium-stealth 代替

selenium-stealth は今も月に数十万回ダウンロードされていますが、最終リリースは 2020 年です。いくつかの値を JavaScript で上書きし、GPU やプラットフォームは手入力させる方式です。Clearcote はアイデンティティ全体をエンジン内で生成するので、値どうしが食い違わず、ネットワークとも一致します。

selenium-stealth とは?

selenium-stealth は、puppeteer-extra-plugin-stealth の一部を Selenium + Chrome 向けに再実装した小さな Python パッケージです。stealth(driver, ...) を呼ぶと、navigator.webdriver、言語、ベンダー、プラットフォーム、WebGL のベンダーとレンダラーを上書きするスクリプトが注入されます。MIT ライセンスで今も人気があり、PyPI の月間ダウンロード数は約 500,000 です。

また、メンテナンスもされていません。PyPI の最終リリース(1.0.6)は 2020 年 11 月で、リポジトリにもそれ以降コミットがありません。README のサンプルは、executable_path 引数が削除された現行の Selenium では書かれたとおりには動きません。しかも platform="Win32" に "Intel Iris OpenGL Engine" という WebGL レンダラーを組み合わせていますが、これは Windows の Chrome が報告することのない macOS 風の文字列です。これこそ、手作業で組み立てたペルソナの根本的な問題です。各値が個別に設定され、それらが同じマシンのものかを確かめる仕組みがありません。また、ChromeDriver 自体にはパッチを当てません。それを担うのが undetected-chromedriver です。

Clearcote vs selenium-stealth

機能Clearcoteselenium-stealth
アプローチ エンジンレベルの C++ パッチ:ネイティブな値 Selenium から注入する JavaScript の上書き
ペルソナの整合性 1 つのシードから生成、GPU・プラットフォーム・フォントが一致 手入力、整合性を確かめる仕組みなし
検知されうる継ぎ目 なし:すべてのレルムでネイティブ ページスクリプトによる上書き、ワーカーには適用されない
ChromeDriver の痕跡 ChromeDriver なし:CDP で操作 残ったまま
TLS / ネットワークの整合性 ClientHello が名乗る Chrome バージョンに従う 未対応
メンテナンス状況 活発、Chromium のメジャーバージョンごとに追従 最終リリースは 2020 年 11 月
フレームワーク Playwright と Puppeteer(Python、Node、.NET) Selenium(Python)
料金 オープンビルドは無料、最新ビルドは GitHub で無料、Pro は月額 $49 無料・オープン(MIT)

比較は 2026年11月 時点のものです。selenium-stealth のライセンス:オープンソース(MIT)。内容は変わることがあるため、最新情報は各プロジェクトでご確認ください。

実測:同じ 10 サイトで 12 個のツールを比較

オープンソースの browsers-benchmark ハーネスを 5 回実行しました(最終実行は 2026年10月27日)。各ツールはそれぞれ専用の米国住宅用 IP で、実行ごとに異なる順序で動かしています。「成功」とは、そのサイト向けのハーネス自身のチェックが、ブロックページやチャレンジページではなく本来のページを確認したことを意味します。 Clearcote は Windows デスクトップ(最新ビルド)で計測し、その他のツールは Linux サーバーで計測しました。

selenium-stealth はこのベンチマークに含まれていません。ハーネスに対応するドライバーがないためです。表にはハーネスが対応しているツールを掲載しています。

本来のページに到達したページ読み込みの割合(ツール別、ヘッドフル/ヘッドレス)
ツールヘッドフルヘッドレス
Clearcote0.63.2 · r5278%39/5080%40/50
Camoufox0.5.8 · v156.0.1-beta.3672%36/5080%40/50
Invisible Playwright0.43.0 · Firefox76%38/5078%39/50
CloakBrowser0.6.474%37/5064%32/50
SeleniumBase (CDP mode)4.49.0 · Chrome74%37/50—
nodriver0.50.6 · Chrome74%37/5040%20/50
Zendriver0.17.1 · Chrome64%32/5060%30/50
tf-playwright-stealth (Firefox)1.2.058%29/5062%31/50
tf-playwright-stealth (Chromium)1.2.056%28/5050%25/50
Playwright (Chromium)1.62.056%28/5030%15/50
Playwright (Firefox)1.62.054%27/5054%27/50
Patchright1.64.3 · Chrome24%12/5026%13/50

サイト:検索結果ページ, コミュニティフォーラム, ソフトウェア企業のサイト, 高級品小売店, マーケットプレイスの商品ページ, チケット販売サイト, ファッション小売店, 旅行予約サイト, 航空会社, ソーシャルネットワーク。 これは 1 つのネットワーク、1 週間分のスナップショットです。結果はリリースやプロキシ、サイト自体の変化によって毎回変わり、すべてのサイトを毎回読み込めたツールはありませんでした。生データ(JSON)。

Clearcote が選ばれる理由

GPU 文字列を手入力しない

selenium-stealth では、WebGL のベンダーとレンダラーを自分で選ぶか、固定された Intel のデフォルト値を使うことになります。Clearcote は GPU、プラットフォーム、フォント、画面を 1 つのシードから導出するので、実在しうるマシンの姿になります。

ネイティブな値

注入された上書きは、関数を調べられても見破られないよう自らを偽装する必要があり、Web Worker には適用されません。Clearcote は Chromium の内部で値を変えるので、ページでもワーカーでも、見つけられる上書きがありません。

今の Chrome に合わせてメンテナンス

検知は Chrome のリリースごとに変わっていきます。Clearcote は Chromium の新しいメジャーバージョンごとに追従していますが、selenium-stealth の検知対策は 2020 年のものです。

ネットワーク層も

Chrome のあるバージョンを名乗るブラウザは、そのバージョンの TLS ハンドシェイクを送るべきです。Clearcote は両者を一致させます。

selenium-stealth のほうが向いている場合

  • すでに selenium-stealth を使っている古い Selenium スクリプトを保守していて、判定の緩いサイトで navigator.webdriver を隠せれば十分な場合。
  • フレームワークを変えられない場合。Selenium を使い続けるなら、活発にメンテナンスされている SeleniumBase を検討してください。

よくある質問

selenium-stealth は今もメンテナンスされていますか?

いいえ。PyPI の最終リリースは 2020 年 11 月の 1.0.6 で、GitHub リポジトリにもそれ以降コミットがありません。今もインストールはできますが、検知対策は Chrome にも検知側にも追いついていません。

selenium-stealth の代わりに何を使えばよいですか?

Selenium を使い続けたいなら、メンテナンスされている選択肢は SeleniumBase の UC Mode か CDP Mode です。Playwright や Puppeteer に移行できるなら、Clearcote は JavaScript で上書きするのではなく、ブラウザエンジン内でフィンガープリントを変更します。

WebGL のベンダーとレンダラーの値はなぜ重要なのですか?

最もよくチェックされるフィンガープリントの値の一つで、プラットフォーム、フォント、そして GPU が実際にどう描画するかと一致している必要があります。たとえば Windows のプラットフォームに macOS のレンダラー文字列という組み合わせは、実在しないマシンを示すことになります。

Selenium で Web サイトをスクレイピングするには?

driver.get() でページを読み込み、WebDriverWait でコンテンツを待ってから、CSS セレクターで読み取ります。Selenium による Webスクレイピングのガイドでは、Python の完全なサンプル、ページネーション、CSV への保存に加え、Selenium のスクレイパーがブロックされる理由も解説しています。

どこまで深いか

比較したどのフォークと比べても 2 倍以上のパッチ数。

Chromium にコンパイルされたパッチの数を、アプローチ別に示します。スクリプトベースのツールはエンジンをまったく変更しません。

ステルスプラグイン

例:puppeteer-extra-plugin-stealth

0

パッチ済みドライバー

例:undetected-chromedriver、nodriver

0

他の Chromium フォーク

無料ビルドと有料ビルド

35–87

Clearcote Pro

r57、Chromium 156

240

公開されているパッチ数(2026年10月 時点)。範囲は他のフォークの無料ビルドと有料ビルドを含みます。Clearcote の数値は Pro ビルドのものです。

試す

365 項目のチェックを、無料で、あなたのブラウザで

すべての Clearcote ビルドに課しているフィンガープリントテストです。今お使いのものでも実行して比べてみてください。

テストを実行
読む

オープンビルドのパッチは公開されています

無料のオープンビルドは BSD-3 で、ソースから再現でき、アカウントも不要です。Pro ビルドは、その上に非公開のパッチを加えています。

GitHub で開く
リリースを追う

エンジンのリリース 57 回、Chromium メジャーバージョン 7 世代

すべてのパッチを新しい Chromium ごとに移植しています。最新ビルドは新しいメジャーバージョンに公開当日に対応します。

リリースを見る

関連記事

ドキュメントMigrating from undetected-chromedriverMove an undetected-chromedriver or selenium-stealth script to Clearcote: launch() replaces the driver, with a Selenium-to-Playwright call mapping.Q&AWhy does navigator.webdriver reveal automation?navigator.webdriver is true whenever a browser is launched under automation flags; overriding it from JavaScript is itself detectable, so the fix belongs in the engine.Q&AWhat is WebGL fingerprinting?WebGL fingerprinting reads the GPU's render output plus driver strings (UNMASKED_VENDOR/RENDERER) and parameter limits — highly device-specific, and hard to fake coherently.比較Clearcote vs undetected-chromedriverundetected-chromedriver は今も月間ダウンロード数が約 2.5M ありますが、最終リリースは 2024 年 2 月です。素の Chrome 上で Selenium/ChromeDriver の継ぎ目を隠すもので、フィンガープリントやネットワーク層には一切手を付けません。Clearcote はその両方をエンジン内で変えます。比較Clearcote vs CamoufoxCamoufox は Firefox ベースの、よくできたオープンソースのアンチディテクトブラウザです。Clearcote は同じエンジンレベルのアプローチを Chromium で実現しているため、自動化で見せるブラウザが、利用者約 3% のものではなく、Web の約 66% が実際に使っているものになります。比較Clearcote vs CloakBrowserCloakBrowser は多くのユーザーを抱える、実力のあるエンジンレベルのステルス Chromium ですが、パッチ済みのバイナリはクローズドソースです。Clearcote も同じくエンジンレベルで、すべてのパッチを読んで再ビルドできるオープンビルドを提供しています。

オープンソースの Chromium 代替を試す

無料のオープンソース。Playwright & Puppeteer にそのまま組み込め、TLS ハンドシェイクまで整合性を保ちます。

ブラウザ 1 つまで無料:GitHub、カード確認、または会社の Google アカウント。請求は一切ありません。