
invisible_playwright v0.7.2
Playwright用の無料アンチディテクトブラウザステルス:検出されないヘッドレスFirefoxフィンガープリント。Pythonスクレイピング、reCAPTCHAおよびボット検出バイパス。オープンソース
Playwright向け無料のアンチディテクトブラウザステルス:検出されないFirefoxフィンガープリント、ヘッドレスまたはヘッド付き。
PythonウェブスクレイピングとCAPTCHA回避。オープンソースで、あらゆるボット検出テストに合格します。

仕組み
アンチボットは2つの質問をし、reCAPTCHA、hCaptcha、Cloudflare Turnstileがその回答をスコアリングします。invisible_playwrightは両方に「はい」と答えます。
1. これは本物のブラウザか? はい。C++ソースレベルでパッチされたFirefoxです。
- ブラウザフィンガープリントはエンジン内部に設定され、ページに注入されるのではありません:navigator、screen、GPU/WebGL、canvas、フォント、オーディオ、WebRTC、タイムゾーン、ネットワーク。ヘッドレスでもヘッド付きでも、どちらでも同じ値です。
- JSシムなし、オーバーライドなし、読み取れる継ぎ目なし。
2. 本物の人間が使っているか? はい。操作はドライバー内で人間らしく処理されます。
- すべてのクリック、ホバー、ドラッグは、人間らしいタイミングで自然なマウス経路をたどり、カーソルが瞬間移動することはありません。
- 各入力は本物のマウスとバイト単位で同一です:本物の入力ソース、圧力、信頼されたイベント。
標準のPlaywright APIで駆動されます。詳細な解説:feder-cr/firefox_antidetect_patch。
それでもCAPTCHAやアンチボットが表示される?それはプロキシの問題です。
ブラウザが処理されれば、それは変数ではなくなります。それでもチャレンジが表示される場合、問題はブラウザではなく、接続元のIPです。プロキシの約90%は公開されています:誰でも同じアドレスをレンタルできるため、すでに既知であり、サイトがチェックするブロック済みIPリストに載っています。既知のIP上の完璧なブラウザでも、依然として負けます。
インストール
pip install invisible-playwright
python -m invisible_playwright fetch # 一回限りの約238 MBダウンロード(展開後約544 MB)、sha256検証済み
対応プラットフォーム:Windows x86_64、Linux x86_64 / arm64。macOSはサポートされなくなりました(リリースはfirefox-20で終了);Macでは、存在しないバイナリをダウンロードする代わりに、パッケージは明確なメッセージとともに起動時に拒否します。
使用方法
セッションごとのランダムフィンガープリント
100% Playwright互換 - 同期・非同期、すべてのメソッド、API変更ゼロ。すでにPlaywrightを使用している場合、切り替えは2行です:
- from playwright.sync_api import sync_playwright
- with sync_playwright() as p:
- browser = p.firefox.launch()
+ from invisible_playwright import InvisiblePlaywright
+ with InvisiblePlaywright() as browser:
各セッションは異なるフィンガープリント(GPU、オーディオ、フォント、screen、約200フィールド)とベジェ曲線のマウス動作を取得します。
同期
from invisible_playwright import InvisiblePlaywright
with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
page = browser.new_page()
page.goto("https://example.com")
page.click("#submit") # マウスがベジェ曲線上を弧を描いてボタンへ移動
非同期
from invisible_playwright.async_api import InvisiblePlaywright
async with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
page = await browser.new_page()
await page.goto("https://example.com")
await page.click("#submit")
browserオブジェクトはplaywright.sync_api.Browser / playwright.async_api.Browserです - すべてのPlaywrightメソッドがそのまま動作します。
実行を再現するためにシードをログに記録:
sf = InvisiblePlaywright()
with sf as browser:
print("seed =", sf.seed)
# ...
再現可能なフィンガープリント
with InvisiblePlaywright(seed=42) as browser:
... # 毎回同じGPU、同じcanvasハッシュ、同じオーディオコンテキスト
プロキシ
proxy = {
"server": "socks5://gate.example.com:1080",
"username": "user",
"password": "pass",
}
with InvisiblePlaywright(proxy=proxy) as browser:
...
対応スキーム:socks5、socks4、http、https。DNSはデフォルトでプロキシ経由でルーティングされ、ローカルリークはありません。
タイムゾーン
ブラウザのタイムゾーンはtimezone=に従います:
# デフォルト:タイムゾーンはegress IPから自動導出されます(プロキシ設定時はプロキシのegress、
# それ以外はホスト自身のパブリックIP)
with InvisiblePlaywright(proxy=proxy) as browser:
...
# 明示的なIANAゾーンが常に優先され、特定のゾーンを強制する唯一の方法
with InvisiblePlaywright(proxy=proxy, timezone="America/New_York") as browser:
...
特定のフィンガープリントフィールドの固定
デフォルトではすべてがseedから導出されます。残りをシード導出のままにして特定の値を強制するには:
with InvisiblePlaywright(
seed=42,
pin={
"gpu.renderer": "ANGLE (NVIDIA, NVIDIA GeForce RTX 4090 Direct3D11)",
"gpu.vendor": "Google Inc. (NVIDIA)",
"screen.width": 2560,
"screen.height": 1440,
"hardware.concurrency": 16,
},
) as browser:
...
固定可能なキーの完全なリスト、固定とベイズサンプラーの相互作用、一般的なパターンは**docs/pinning.md**にあります。
CLI
インストールされるコマンドはinvisible-playwrightで、ハイフン付きです。python -m invisible_playwrightも同様に動作し、PATHに何も必要ありません。
invisible-playwright fetch # エンジンがなければダウンロードし、キャッシュされた各エンジンを
# シールに対して検証し、パスを表示
invisible-playwright version # ラッパー、コア、エンジンのバージョン、およびエンジンの
# キャッシュ場所
ドキュメント、ガイド、比較
すべては**wiki**で読みやすく、検索可能です。 1つのフラットリストではなく4つのセクションに整理されています:
- ドキュメント - インストール、通常のPlaywrightからの2行での切り替え、プロキシ/タイムゾーン 設定、特定フィールドの固定、CLI。
- ガイド - 検出が実際にどのように機能するか、 7つのグループで:ブラウザアイデンティティ、canvas/WebGL/フォント/ オーディオ、ネットワークとWebRTC、自動化レイヤー、AIエージェント、検出器自体の ソースからの解説、そしてテスト。
- 比較 - Camoufox、Patchright、nodriver、playwright-stealthとの比較、および一般的に ChromiumよりもFirefoxを選ぶ理由。
- 統合 - Scrapy、Crawlee、Robot Framework、CodeceptJS、テストランナー、Playwright MCP、および 適合しないフレームワークを名前付きで。
どこから始めればよいかわからない場合:Playwrightを検出されないようにする3つの方法 は他のほとんどのページがリンクする地図であり、あるサイトでPlaywrightがボットとして検出された はトラブルシューティングの順序であり、navigator.webdriverはあなたが思うような手がかりではない はこの分野で最も有名なプロパティと、それを単独でパッチしてもほとんど得られない理由を説明しています。
- crawl4aiステルスとカスタムブラウザエンジン - browser_typeはfirefoxを受け入れますがexecutable_pathはありません;アダプターの継ぎ目がどこにあるか
- ヘッドレスブラウザが異なるフォントをレンダリングする理由 - 3つの原因、プラットフォームごとのフォントセット、そして修正がフォントを追加することではない理由
- LinuxとmacOSに本物のWindowsフォントを報告させる方法 - 1つのマニフェスト、ホストに尋ねないように説得された3つのフォントバックエンド、そしてまだ開いている4つの継ぎ目
- フィンガープリンティング面としてのmeasureTextとTextMetrics - 権限プロンプトを必要としない1回の呼び出しからの10以上の数値、そして修正中に私たちが犯した2つの間違い
- privacy.resistFingerprintingが実際に何をするか - そしてこのプロジェクトが意図的にfalseに設定する理由
- ChromeDriverのcdc_変数 - 名前を変更しても削除にならない理由、そしてそれが一般化する内容
- bot.sannysoft.comが実際にチェックするもの - 行ごとに、そして誰も読まないcanvas-in-iframeテスト
- CreepJSがあなたが嘘をついていると判断する方法 - 4つの検出テクニック、そしてプローブをブロックすること自体が記録される理由
- 何もしないFirefox設定 - 5つの理由、実際のバグを招いたものから始まる
- BotDが実際に検出するもの - 20の検出器、そしてそのほとんどがボットに関するものではない理由
- FingerprintJSのビジターIDが変わる理由 - 41のコンポーネントのハッシュであり、1つが動けばすべてが動く
関連プロジェクト
オープンソースの隣人たちと、それぞれの用途。
Firefox側
- Camoufox - C++レベルでもパッチするアンチディテクトFirefox。より広い範囲をカバーし、独自のフィンガープリントデータベースを同梱;このプロジェクトはベイズサンプラーでシードからフィンガープリントを導出するため、1つの数値が1つのマシンを再現します。完全な比較。
- LibreWolf - プライバシーデフォルトを備えたFirefoxフォーク。人々がブラウジングするための設定済みバイナリを提供;これはソースパッチと自動化ラッパーを提供します。
- arkenfox/user.js - 設定によるFirefoxの堅牢化。設定で十分な場合はそれを使用;このプロジェクトは設定では不十分な場合にC++をパッチします。
Chromium側
- Patchright - パッチされたPlaywrightフォークで、ステルス作業はブラウザバイナリではなくドライバーに組み込まれます。完全な比較。
- nodriver -
undetected-chromedriverの後継で、CDP経由でChromeを直接駆動し、WebDriver風の痕跡を除去します。完全な比較。 - playwright-stealth - ページ読み込み前に適用されるinitスクリプトパッチ。そのメンテナー自身が概念実証と呼んでいます;完全な比較。
- puppeteer-extra-plugin-stealth - このinitスクリプト系譜の元祖で、今でも広く推奨されています。リポジトリの最後の実質的なコミットは2024年半ば;それが実際に意味すること。
- selenium-stealth - Selenium/CDPでの同じアプローチ。リポジトリの最後のコミットは2021年12月;それが実際に意味すること。
- pyppeteer - Puppeteerの非公式Python移植版。自身のREADMEがメンテナンスされていないと述べ、代わりに
playwright-pythonを指しています;その推奨が実際に何についてなのか。 - rebrowser-patches - Chromiumの
Runtime.enableCDPリークを修正し、Patchrightが使用する修正とほぼ同じものに独立して収束しています。完全な比較。 - fingerprint-suite - ベイジアンネットワークで一貫したフィンガープリントを生成し、このプロジェクト自身の生成アプローチに近く、それをChromiumまたはFirefox上のPlaywrightまたはPuppeteerページに注入します。完全な比較。
- playwright-with-fingerprints - リモートの有料サービスから取得したフィンガープリント値を注入し、Windows専用で、特定のChromiumビルドに固定されています。完全な比較。
どれが適合するかは、問題がどのレイヤーにあるか、そしてFirefoxとChromiumのどちらが必要かによって決まります。Playwrightを検出されないようにする3つの方法は、各レイヤーが何に到達でき、何に到達できないかを、このプロジェクトのコストを含めて詳しく説明しています。
ツールではなくエンジンを選ぶ場合、AIエージェントフレームワークの多くがCDP経由でChromiumを駆動することに注意してください。これがあなたに代わって決定を下します:AIブラウザエージェントとステルス。
ライセンス
MIT - LICENSEを参照。パッチされたFirefoxバイナリはMPL-2.0(Firefoxアップストリームライセンス)の下で配布されます。そのバイナリを生成するmozilla-centralに対するC++パッチはfeder-cr/firefox_antidetect_patchにあります。
免責事項
このプロジェクトは教育目的のみです。無保証で現状のまま提供されます。使用方法について一切の責任を負いません。自己責任で、お住まいの地域の法律に従って使用してください。
Built by Federico Elia