Playwright で Cloudflare を突破する 2026年版: 現役の3手法(失敗9手法)
結論(最終更新 2026年5月27日 — Cloudflare ML v9 / Web Bot Auth 時代):
- 今も効くもの: レジデンシャル IP + 本物のモバイルフィンガープリント + 人間ペースの入力。標準 Cloudflare で約95〜97%、Enterprise で約75〜78%の突破率(2026年5月の社内実測、ターゲットによるばらつきあり)。
- 効かなくなったもの: VPS IP 上の playwright-extra stealth、undetected-chromedriver 単体、FlareSolverr、ハードコードされた TLS クライアント(curl-impersonate 単体)。素朴な playwright-stealth が失敗する深掘り分析は『2026年に playwright-stealth が効かない理由』を参照。
- 2026年5月のくさび: Cloudflare は Web Bot Auth(暗号署名によるエージェント「パスポート」)を提供開始しました。Anchor Browser と Browserbase がパートナーです。正当なエージェントがオプトイン済みのサイトを巡回するなら、回避するより署名する方がクリーンです。それ以外では、依然としてレジデンシャル + フィンガープリント + 挙動が唯一の道です。
12手法のテスト表へジャンプ · 生 JSON 結果をダウンロード · 動作する Playwright コード · FAQ

目次
- 2026年に Playwright がブロックされる理由(Cloudflare ML v9)
- Cloudflare が実際にチェックする3つの要素
- 2026年1〜5月に変わったこと
- 12手法のテスト結果(本命の表) · 生 JSON
- レジデンシャル IP + 本物のフィンガープリント — 生き残る唯一のスタック
- 動作する Playwright + Human Browser コード
- Web Bot Auth と stealth、どちらを使うか
- FAQ
2026年に Playwright で Cloudflare 保護下のサイトをスクレイピングしようとしたことがあれば、痛みは分かっているはずです。スクリプトがページに到達した瞬間、2秒以内にチャレンジページか 403 が画面を埋めます。ステルスプラグインを何個積もうが関係ありません — データセンター IP 上の素の Playwright は、現在の Cloudflare ボット検出スタックには勝てません。
このガイドでは、Cloudflare が正確に何をチェックしているのか、なぜ大半の回避策が 2026年に機能しないのか、そして今も動く3つの手法を解説します。まず数字から: 2026年5月、同じスクリプトを 12 のスタック構成で実行しました。9つは初回リクエストで失敗、3つが通過。全結果表は下の方にあります。生 JSON もダウンロード可能なので、引用やテストのフォークに使ってください。
なぜ 2026年に Playwright は Cloudflare にブロックされるのか
Cloudflare のボット保護は大きく進化しました。2023年は playwright-extra と stealth プラグインで何とかなりました。2024年は自動化フラグを隠す必要がありました。2026年現在、Cloudflare は単一のトリックでは打ち破れない、複数シグナルを統合した解析を実行しています。
核心的な問題はこれです: Cloudflare が最初にチェックするのは IP アドレスです。ブラウザフィンガープリントが評価される前に、その IP がデータセンター、VPN プロバイダ、本物の家庭用インターネット接続のどれに属するかを Cloudflare は把握しています。
よくある誤解: Playwright にステルスプラグインを追加すれば Cloudflare を突破できる。2026年現在、ステルスプラグイン単体では失敗します。Cloudflare の IP レピュテーションデータベースが主要クラウドプロバイダ(AWS、DigitalOcean、Hetzner、OVH)を瞬時にフラグするため、ブラウザフィンガープリントは無関係になります。
VPS から Playwright を実行すると、トラフィックは Cloudflare がデータセンターと認識する ASN(Autonomous System Number)から発信されます。リスクスコアは自動的に最大化され、いかなるフィンガープリント偽装も助けにはなりません。
遭遇する Cloudflare エラーコード(1020、1010、403、「Just a moment…」)
Playwright がブロックされるとき、Cloudflare は大抵その理由を明示します。Google 検索で最もよく貼り付けられるコードは以下です:
- Error 1020 — Access Denied: ファイアウォール/WAF ルールがリクエストをブロック。ほぼ確実に IP が既知のデータセンターレンジに属することが原因。対処: クリーンなレジデンシャル IP。
- Error 1010 — browser signature banned: Cloudflare がクライアントフィンガープリント(ヘッドレスのヒント、自動化シグナル)をフラグ。対処: パッチを当てたヘッドレスではなく、本物のブラウザフィンガープリント。
- HTTP 403 / 「Sorry, you have been blocked」: Managed Challenge の失敗 — 通常は IP レピュテーションとフィンガープリントの合わせ技。対処: レジデンシャル IP + 現実的なフィンガープリント + 人間ペースの入力。
- 「Just a moment…」/
cf_chlのインタースティシャルが解決しない: JS チャレンジは走っているが、クライアントが自動化に見えるためループ。対処: 同じスタック — ブラウザが本物に見えればチャレンジは通過します。
4つすべてが同じ2つのシグナル(IP レピュテーションとフィンガープリントの一貫性)に行き着きます。Cloudflare が次にスコアリングするのはまさにそこです。
Cloudflare が実際にチェックする3つの要素
Cloudflare が何を評価しているかを理解すれば、なぜ大半の突破試行が失敗するのかが分かります。2026年現在の実際のシグナルスタックは以下のとおりです:
1. IP レピュテーションと ASN 分類
Cloudflare は巨大な IP アドレス分類データベースを保持しています。すべてのリクエストは即座にタグ付けされます: 家庭用 ISP、モバイルキャリア、VPN、ホスティングプロバイダ、プロキシサービス、Tor 出口ノード。AWS、DigitalOcean、Hetzner などのデータセンター IP には自動的に高いボット確率スコアが付きます。このチェックを迂回する方法はありません — JavaScript が走る前に決着がついています。
2. ブラウザフィンガープリントの一貫性
Cloudflare は JavaScript チャレンジを実行し、ブラウザの数十のプロパティを検査します: navigator.webdriver、Canvas フィンガープリント、WebGL レンダラ、AudioContext、フォント列挙、プラグイン一覧、画面解像度、タイムゾーンオフセット、言語設定、ハードウェア同時実行数。Linux サーバー上で動くヘッドレス Chromium には、本物の iPhone や Windows PC とは異なる特徴的シグネチャがあります。
3. 挙動分析
マウスの動きパターン、スクロール挙動、ページ滞在時間、操作速度、クリックパターンがすべて解析されます。ボットは即座かつ機械的にページと相互作用しがちです。本物のユーザーにはばらつきがあります — 一時停止し、速度を変えながらスクロールし、曲線でマウスを動かします。
核心の洞察: 3つすべてを同時に解決する必要があります。IP は直したがフィンガープリントは直していない → ブロック。フィンガープリントは直したが IP は直していない → ブロック。両方直したがロボットのように動く → やがてブロック。Human Browser のような完全ソリューションが存在するのはこのためです。
2026年1〜5月に変わったこと
最後に Cloudflare ブロックをデバッグしたのが 2025年なら、地形は足元から変わっています。2026年前半に起きた3つの具体的なシフトが、11月に動いていたスクリプトが5月に HTTP 403 を返している理由を説明します。
1. ML モデル v9 が新しいデフォルトに(2026年 Q1 に全ゾーン展開)
Cloudflare の 機械学習ボットスコアモデル v9 は、すべての新規ゾーンおよび自動更新オプトイン済みの既存ゾーンでデフォルトになりました。v9 は TLS フィンガープリント(JA4)、HTTP/2 フレーム順序、挙動テレメトリを v8 より積極的に重み付けします。実用上の影響: Linux 上の Playwright のデフォルト TLS ハンドシェイクは、ブラウザフィンガープリントが完璧でも目立つようになりました。本物のデバイスに一致する TLS スタックを持つブラウザ(Patchright や Human Browser のヘッドフル Chrome が処理しているもの)を使うか、Enterprise 保護ゾーンでより高いブロック率を受け入れるかの二択です。
2. 異常検知: ボットスコアの下限が 2 に
Cloudflare ボットソリューションのチェンジログによると、異常検知エンジンがフラグしたイベントはボットスコア 2 に固定されるようになりました(1〜99 スケール、低いほどボット寄り)。これは厳しい変更です: 以前はギリギリで通過していた自動化が、30 未満をブロックする Enterprise ルールセットでハードフェイルするようになりました。対策は挙動側です — 速度を落とし、スクロールし、タイミングを変え、同じレジデンシャルセッションからバーストリクエストを絶対に打たないこと。
3. Web Bot Auth: 正当性レーンの開通(2026年5月)
2026年5月、Cloudflare は Web Bot Auth を発表しました。AI エージェントのトラフィックを暗号署名することで、検証済みエージェントがチャレンジなしで通過できる標準です。Anchor Browser は同週にファーストパーティ対応を出荷し、その体験を「安定して CAPTCHA のないセッション。リトライの不安定さが減少」と表現しました。Browserbase も同日に統合を発表しました。これは正当な AI エージェントにとって紛れもなく朗報ですが、サイトオーナーによるオプトイン制であり、実際にアクセスしたい Cloudflare 保護下のロングテールサイトは有効化していません。今後 12〜18 か月の現実的な計画は: 使えるところでは Web Bot Auth、それ以外はレジデンシャル + フィンガープリントです。判断ツリーは下の Web Bot Auth セクションで扱います。

12手法のテスト結果 — 社内実測、2026年5月
同じ Playwright スクリプトを 12 のスタック構成で実行し、8 つの Cloudflare 保護サイトを対象としました(Pro 4 / Business 3 / Enterprise 1 — 社内実測、2026年5月、構成あたり約 500 リクエスト)。「Pass」は HTTP 200 で実際のページコンテンツが返ったもので、チャレンジや 403 は含みません。数値は同日スナップショットの目安であり、ターゲットによってばらつきます。
生データ: リクエストレベルの完全な形は cf-bypass-12-methods.json として公開しています — 各行 { method, ip_type, fingerprint, behavior, cf_pro_pass_pct, cf_enterprise_pass_pct, verdict }。引用、フォーク、自前での再実行にどうぞ。
| # | 手法 | IP | フィンガープリント | 挙動 | CF Pro | CF Ent. | 結論 |
|---|---|---|---|---|---|---|---|
| 1 | 素の Playwright | VPS | デフォルト Chromium | なし | 約2% | 0% | 死亡 |
| 2 | playwright-extra + stealth | VPS | パッチ済み | なし | 約5% | 0% | 死亡 |
| 3 | undetected-chromedriver | VPS | パッチ済み | なし | 約8% | 0% | 死亡 |
| 4 | FlareSolverr(プロキシ経由) | VPS | 自動解決 | なし | 約3% | 0% | 死亡 |
| 5 | curl-impersonate 単体 | VPS | JA4 OK | N/A | 約6% | 0% | JS 実行なし |
| 6 | Puppeteer + DC プロキシ | DC プロキシ | デフォルト | なし | 約4% | 0% | 死亡 |
| 7 | VPN + Playwright | VPN(フラグ済み) | デフォルト | なし | 約10% | 0% | 不安定 |
| 8 | レジデンシャル IP のみ | レジデンシャル | デフォルト | なし | 約35% | 約5% | 部分的 |
| 9 | レジデンシャル + stealth FP | レジデンシャル | パッチ済み | なし | 約70% | 約25% | そこそこ |
| 10 | レジデンシャル + iPhone FP + 人間入力 | レジデンシャル | iPhone 15 Pro | ベジェ + ジッタ | 約95% | 約75% | 動作 |
| 11 | Human Browser(マネージド) | レジデンシャル | iPhone 15 Pro | マネージド | 約97% | 約78% | 動作 |
| 12 | Web Bot Auth(署名エージェント) | N/A | N/A | N/A | オプトイン済み 100% | 未オプトイン 0% | 対応サイト限定 |
2026年5月時点で今も動くのは手法 10、11、12 の3つです。手法 10 は DIY スタック、手法 11 はそのマネージド版で humanbrowser.cloud、手法 12 は正当性レーンで、Cloudflare Web Bot Auth 検証を明示的に有効化したサイトでのみ動作します。ターゲットごとの完全な形は cf-bypass-12-methods.json。

魔法のフラグは存在しない。あるのはスタックだけだ。
ソリューション: レジデンシャル IP + 本物のフィンガープリント
2026年に安定して機能する唯一のアプローチは、レジデンシャルプロキシ(本物の家庭用インターネット接続)と、本物のデバイスが生成するブラウザフィンガープリントを組み合わせることです。
完全なソリューションの姿は以下のとおりです:
- 本物の ISP(例: DIGI Romania、AT&T、BT)からのレジデンシャル IP — データセンターではない
- iPhone 15 Pro フィンガープリント — 正しい UA、ビューポート、ピクセル比、タッチイベント、プラットフォーム文字列
- 人間らしい挙動 — ベジェ曲線マウス、現実的なタイピング速度(60〜220ms/キーストローク)、自然なスクロール
- 検出回避フラグ —
navigator.webdriver = false、本物のプラグイン一覧、正しい Canvas フィンガープリント
Human Browser はこれらすべてを 1 つの npm パッケージにまとめ、関数呼び出し1回で済むようにしています。セットアップ手順を見ていきましょう。
ステップごと: Playwright での Human Browser セットアップ
ステップ 1: パッケージをインストール
npm install @virixlabs/humanbrowserステップ 2: レジデンシャルプロキシの認証情報を取得
レジデンシャルプロキシのアクセスが必要です。humanbrowser.cloud/install から $1 で試せます(実際のタスク1回分) — 従量課金で、ブラウザ稼働時間 $0.10/時間 + エージェント 1 ステップ $0.02(AI 込み)+ レジデンシャルプロキシ $4/GB、サブスクなし。プロキシのユーザー名とパスワードが発行されます。プロキシ配線そのもののより詳しい解説は『Playwright + レジデンシャルプロキシ完全ガイド』を、横並びベンチマークは『2026年スクレイピング用レジデンシャルプロキシ徹底比較』を参照してください。
ステップ 3: 環境変数を設定
# Residential proxy credentials from humanbrowser.cloud
PROXY_USER=your_proxy_username
PROXY_PASS=your_proxy_password
PROXY_HOST=brd.superproxy.io
PROXY_PORT=22225ステップ 4: スクリプトで launchHuman() を使用
const { launchHuman } = require('@virixlabs/humanbrowser');
async function scrapeCloudflareProtectedSite() {
const { browser, page, humanScroll, humanRead } = await launchHuman();
// Navigate — residential IP + real fingerprint passes Cloudflare
await page.goto('https://example-cloudflare-protected.com', {
waitUntil: 'domcontentloaded',
timeout: 30000
});
// Simulate reading — critical for behavioral checks
await humanRead(page);
// Natural scroll behavior
await humanScroll(page, 'down');
// Extract your data
const content = await page.evaluate(() => document.body.innerText);
await browser.close();
return content;
}
scrapeCloudflareProtectedSite().then(console.log).catch(console.error);動作する完全な実装
Cloudflare 保護サイトをスクレイピングするための、本番投入可能な完全な例です:
const { launchHuman } = require('@virixlabs/humanbrowser');
async function bypassCloudflare(url) {
const { browser, page, humanRead, humanScroll, sleep } = await launchHuman({
mobile: true, // iPhone 15 Pro fingerprint
country: 'gb' // UK residential IP
});
try {
console.log('Navigating with residential IP...');
await page.goto(url, { waitUntil: 'networkidle' });
// Wait for Cloudflare challenge to resolve (if any)
await sleep(2000);
// Check if we passed the challenge
const title = await page.title();
if (title.includes('Just a moment') || title.includes('Attention Required')) {
// Still on challenge — wait longer
await sleep(5000);
}
// Behave like a human reader
await humanRead(page);
await humanScroll(page, 'down');
await humanRead(page);
const data = await page.evaluate(() => ({
title: document.title,
text: document.body.innerText.substring(0, 2000)
}));
console.log('Success:', data.title);
return data;
} finally {
await browser.close();
}
}
// Usage
bypassCloudflare('https://your-target-site.com')
.then(d => console.log(d))
.catch(e => console.error('Failed:', e.message));単発スクリプトではなく、自律エージェントに Cloudflare 突破を組み込む場合は、同じレジデンシャル IP + フィンガープリントスタックがそのまま『AI エージェント向けブラウザ自動化』のパターンに差し込めます。

Web Bot Auth と stealth、どちらを使うか
Web Bot Auth は、AI エージェントとサイトオーナーの間で初めて成立した「礼儀正しいプロトコル」の試みです。エージェントは秘密鍵で HTTP リクエストごとに署名し、Cloudflare は公開レジストリと照合し、検証済みエージェントはチャレンジなしで通過します。リファレンス実装はオープンソースです。Anchor が配線後のユーザー体験をこう表現しました: 「安定して CAPTCHA のないセッション。リトライの不安定さが減少」 — 検証済みエージェントトラフィックがまさに取り除こうとしている頭痛そのものです。
Web Bot Auth が向くのは以下のような場合:
- 長期稼働の B2B AI エージェント(調達、リサーチ、カスタマーサポート)を構築している
- 対象サイトが自社の顧客、パートナー、または公開オプトイン済みの大規模プラットフォーム
- 安定した署名鍵を公開でき、既知のアイデンティティに対するレート制限を受け入れられる
レジデンシャル + フィンガープリントを続けるべき場合:
- サイトオーナーがスクレイプを望まない公開データ(価格情報、SERP、ソーシャル)を集めている — Web Bot Auth は許諾を変えるわけではなく、単に身元をさらすだけ
- 対象サイトが検証済みエージェント受け入れを有効化していない — 現時点で 99% 超のサイトが該当
- 宣言されたエージェントではなく、通常の消費者デバイスに見せる必要がある
Human Browser は両レーンをサポートします: デフォルトでレジデンシャル IP + 本物のデスクトップ Chrome フィンガープリント(iPhone プロファイルは要望に応じて)、検証済みエージェントフローにはA2A エンドポイント上のマネージド署名エージェントプロファイルが用意されています。
スタックを自作せずに Cloudflare を突破する。 従量課金: ブラウザ稼働時間 $0.10/時間、レジデンシャルプロキシ $4/GB、CAPTCHA $0.005/回、エージェント 1 ステップ $0.02(AI 込み)。サブスクなし。未使用残高は失効なし。レジデンシャルは 75 か国。$1 から試せます — 実際のタスク1回分。その後は $5 からチャージ。
エージェント向け A2A エンドポイント:
https://agent.humanbrowser.cloud/a2a$1 で試す — humanbrowser.cloud/install
または横並びを読む: Human Browser vs Browserbase(2026年版)
FAQ
2026年、Playwright は Cloudflare にブロックされますか?
はい。データセンター IP 上で素の Playwright を動かすと、Cloudflare のボット検出に数秒でブロックされます。安定して突破するには、レジデンシャル IP と現実的なブラウザフィンガープリントの両方が必要です。
2026年、Playwright で Cloudflare を突破する最も確実な方法は?
2026年5月の12手法実測で最も信頼性が高かったのは、レジデンシャル IP + iPhone 15 Pro フィンガープリント + 人間ペースの入力(ベジェ曲線マウス、60〜220ms のキーストローク)の組み合わせです。Cloudflare Pro で約95%、Enterprise で約75%通過しました。Human Browser はこれを 1 回の npm install で提供し、$0.10/時間 + エージェント1ステップ $0.02 + $4/GB の従量課金で利用できます。
playwright-extra + stealth プラグインで Cloudflare を突破できますか?
2026年現在、playwright-extra の stealth 単体では不十分です。Cloudflare は対応済みで、フィンガープリント偽装に加えて本物のレジデンシャル IP が必要になりました。stealth プラグインは一部のチェックには有効ですが、IP レピュテーションのチェックは通過できません。
2026年5月時点で playwright-stealth は今でも有効ですか?
単体ではノーです。12手法の実測では、VPS IP 上の playwright-extra + stealth は Cloudflare Pro のチャレンジを約5%、Enterprise を約0%しか通過しませんでした。レジデンシャル IP を組み合わせると約70% / 約25% に跳ね上がりますが、人間ペースの挙動を伴うマネージド iPhone フィンガープリントには依然として負けます。ステルスライブラリのどの失敗モード(フィンガープリント表面、CDP の露出、TLS、挙動)が今ハードフェイルしているのかの完全な診断は『2026年に playwright-stealth が効かない理由』を読んでください。
Cloudflare の Web Bot Auth とは何ですか?使うべきですか?
Web Bot Auth は 2026年5月に提供開始された Cloudflare の標準仕様で、AI エージェントが HTTP リクエストを暗号署名することで、正当なエージェントがチャレンジを迂回できる仕組みです。Anchor Browser と Browserbase が同週に対応を出荷しました。対象サイトがオプトインしている場合(現状は少数)に使い、それ以外ではレジデンシャル + フィンガープリントを使ってください。
Cloudflare を突破できる最安のレジデンシャルプロキシは?
単体で実用的な突破率を持つ最安オプションは Decodo / Smartproxy の $8.5/GB です。NodeMaven の $7/GB はプールが小さいですがよりクリーンです。プロキシアカウントを自分で運用したくないなら、Human Browser が 75 か国のレジデンシャル IP を $4/GB の従量課金でバンドルし、対応するブラウザフィンガープリントも配線済みで提供しています — 完全な比較は『2026年スクレイピング用レジデンシャルプロキシ徹底比較』を参照。
Human Browser は Browserbase や Anchor Browser とどう違いますか?
Browserbase と Anchor Browser はステルス層を備えたセッション課金のクラウド Chromium で、いずれも 2026年5月に Cloudflare Web Bot Auth サポートを出荷しました。Human Browser は従量課金で、ブラウザ稼働時間 $0.10/時間 + レジデンシャルプロキシ $4/GB + CAPTCHA $0.005/回 + エージェント 1 ステップ $0.02(AI 込み) — サブスクなし、未使用残高は失効なし。横並びの内訳は『Human Browser vs Browserbase』。
レジデンシャルプロキシで Cloudflare を突破するコストは?
Human Browser は従量課金です: ブラウザ稼働時間 $0.10/時間、レジデンシャルプロキシ $4/GB、CAPTCHA $0.005/回、エージェント 1 ステップ $0.02(AI 込み)。サブスクなし、未使用残高は失効なし、$1 から試せます — 実際のタスク1回分。その後は $5 からチャージ。
ディスプレイサーバーなしの $5 VPS でも動きますか?
はい。Human Browser はヘッドレスモードで Playwright を実行するため、ディスプレイサーバー、VNC、X11 のいずれも不要です。Hetzner や Contabo の最安 $5/月クラスを含む、あらゆる Linux サーバーで動作します。重要なのはレジデンシャルの出口であって、コントロールプレーンがどこにあるかではありません。
関連記事
- Playwright Cloudflare Bypass: 2026年完全ガイド
- 2026年版 Apify の代替 — より安い Web スクレイピングプラットフォーム比較
- 2026年に playwright-stealth が効かない理由 — 修正ガイド
- 2026年スクレイピング用レジデンシャルプロキシ徹底比較 — 実測ベンチマーク
- Human Browser vs Browserbase — 2026年率直比較
- Python での Cloudflare 突破: 2026年に何が効くか
- 2026年の Cloudflare Turnstile 突破: 実際に効くもの
- 2026年、BAN されずに LinkedIn をスクレイピングする方法
- Playwright + レジデンシャルプロキシ: 2026年完全セットアップガイド
- AI エージェント向けブラウザ自動化: OpenClaw + Playwright 2026