CAPSOLVER
ブログ
AWS WAFをCrawl4AIでCapSolver統合を用いて解決する方法

アAWS WAFをクローラー4AIで解決する方法とキャプソルバー統合

Logo of CapSolver

Sora Fujimoto

AI Solutions Architect

21-Oct-2025

はじめに

Amazon Web Services (AWS) Web Application Firewall (WAF)は、可用性に影響を与える可能性のある一般的なウェブの脆弱性や、セキュリティを侵害する、または過度なリソースを消費する攻撃からウェブアプリケーションを保護する強力なセキュリティサービスです。ウェブアセットを保護する上で不可欠ですが、自動化されたウェブスクラッピングやデータ抽出プロセスでは、しばしば正当なクローラーをブロックする大きな課題となることがあります。

この記事では、Crawl4AI、高度なウェブクローラーとCapSolver、リーディングなCAPTCHAおよびアンチボットソリューションサービスをシームレスに統合する方法について、包括的なガイドを提供します。AWS WAFの保護を効果的に回避するためのAPIベースの統合と拡張機能統合方法を詳しく説明し、コード例と説明を含むことで、ウェブ自動化タスクが中断されることなく進むことを確保します。

AWS WAFの理解とウェブスクラッピングにおける課題

AWS WAFは、Amazon CloudFront配布、アプリケーションロードバランサー、Amazon API Gateway、またはAWS AppSync GraphQL APIに送信されたHTTP(S)リクエストを監視することで動作します。これは、SQLインジェクションやクロスサイトスクリプティングなどの一般的な攻撃パターンをブロックするルールを設定することを可能にし、IPアドレス、HTTPヘッダー、HTTPボディ、またはURI文字列に基づいてトラフィックをフィルター処理することもできます。ウェブクローラーにとって、これはしばしば以下のような状況を意味します:

  • リクエストフィルタリング: WAFルールは、自動化または悪意のあるリクエストを識別し、ブロックします。
  • クッキーによる検証: AWS WAFは、正当なユーザーのセッションを追跡および検証するために特定のクッキーを頻繁に使用します。これらのクッキーがなければ、リクエストはしばしば拒否されます。
  • ダイナミックなチャレンジ: 伝統的なCAPTCHAではありませんが、その下部のメカニズムは障壁となる可能性があり、進むために特定のトークンやセッション識別子が必要です。

CapSolverは、必要なaws-waf-tokenクッキーを取得するための堅牢なソリューションを提供します。これは、ウェブスクラッピング時にAWS WAFを回避する鍵です。Crawl4AIと統合することで、クローラーが正当なユーザーの行動を模倣し、保護されたサイトを成功裏にナビゲートできるようになります。

💡 Crawl4AI統合ユーザー向けエクスクルーシブボーナス:
この統合を祝して、本チュートリアルを通じて登録したすべてのCapSolverユーザーに、6%のボーナスコード — CRAWL4 を提供しています。
ダッシュボードでチャージ時にコードを入力すると、即座に6%の追加クレジットを取得できます

統合方法1: CapSolver API統合とCrawl4AI

Crawl4AIとCapSolverでAWS WAFチャレンジを処理する最も効果的な方法は、API統合です。この方法では、CapSolverを使用して必要なaws-waf-tokenを取得し、そのトークンをクッキーとしてCrawl4AIのブラウザコンテキストに挿入してから、ターゲットページを再読み込みします。

仕組み:

  1. 初期ナビゲーション: Crawl4AIは、AWS WAFで保護されたターゲットウェブページにアクセスしようとします。
  2. WAFチャレンジの識別: WAFに遭遇した場合、スクリプトはaws-waf-tokenの必要性を認識します。
  3. AWS WAFクッキーの取得: CapSolverのAPIをSDKを使用して呼び出し、AntiAwsWafTaskProxyLessタイプとwebsiteURLを指定します。CapSolverは必要なaws-waf-tokenクッキーを返します。
  4. クッキーの挿入と再読み込み: Crawl4AIのjs_code機能を使用して、取得したaws-waf-tokenをブラウザコンテキストにクッキーとして設定します。クッキーを設定した後、ページを再読み込みします。
  5. 操作の継続: 正しいaws-waf-tokenクッキーが設定されているため、Crawl4AIは保護されたページに成功裏にアクセスでき、データ抽出タスクを継続できます。

例: AWS WAFのAPI統合

以下のPythonコードは、Crawl4AIとCapSolverのAPIを統合してAWS WAFチャレンジを解決する方法を示しています。この例は、AWS WAFで保護されたポルシェNFTオンボーディングページを対象としています。

python Copy
import asyncio
import capsolver
from crawl4ai import *


# TODO: あなたの設定を記入してください
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx"              # CapSolverのAPIキー
site_url = "https://nft.porsche.com/onboarding@6"  # ターゲットサイトのURL
cookie_domain = ".nft.porsche.com"                 # クッキーを適用するドメイン名
captcha_type = "AntiAwsWafTaskProxyLess"           # ターゲットのキャプチャタイプ
capsolver.api_key = api_key


async def main():
    browser_config = BrowserConfig(
        verbose=True,
        headless=False,
        use_persistent_context=True,
    )

    async with AsyncWebCrawler(config=browser_config) as crawler:
        await crawler.arun(
            url=site_url,
            cache_mode=CacheMode.BYPASS,
            session_id="session_captcha_test"
        )

        # CapSolver SDKを使用してAWS WAFクッキーを取得
        solution = capsolver.solve({
            "type": captcha_type,
            "websiteURL": site_url,
        })
        cookie = solution["cookie"]
        print("AWS WAFクッキー:", cookie)

        js_code = """
            document.cookie = \'aws-waf-token=""" + cookie + """;domain=""" + cookie_domain + """;path=/\
\';
            location.reload();
        """

        wait_condition = """() => {
            return document.title === \'Join Porsche’s journey into Web3\';
        }"""

        run_config = CrawlerRunConfig(
            cache_mode=CacheMode.BYPASS,
            session_id="session_captcha_test",
            js_code=js_code,
            js_only=True,
            wait_for=f"js:{wait_condition}"
        )

        result_next = await crawler.arun(
            url=site_url,
            config=run_config,
        )
        print(result_next.markdown)


if __name__ == "__main__":
    asyncio.run(main())

コード分析:

  1. CapSolver SDK呼び出し: capsolver.solveメソッドは、AntiAwsWafTaskProxyLessタイプとwebsiteURLを指定して呼び出され、aws-waf-tokenクッキーを取得します。これは、CapSolverのAIがWAFチャレンジを解決し、必要なクッキーを提供する重要なステップです。
  2. JavaScript挿入(js_code): js_code文字列には、document.cookieを使用してブラウザコンテキストにaws-waf-tokenクッキーを設定するJavaScriptが含まれています。その後、location.reload()をトリガーしてページをリロードし、以降のリクエストに新しい有効クッキーが含まれるようにします。
  3. wait_for条件: wait_conditionは、Crawl4AIがページタイトルが'Join Porsche’s journey into Web3'に一致するまで待つことを定義します。これは、WAFが成功裏に回避され、目的のコンテンツが読み込まれたことを示しています。

統合方法2: CapSolverブラウザ拡張機能統合

CapSolverのブラウザ拡張機能は、Crawl4AIが管理する永続的なブラウザコンテキスト内で自動解決機能を活用する場合、AWS WAFチャレンジを処理する簡略化されたアプローチを提供します。

仕組み:

  1. 永続的なブラウザコンテキスト: Crawl4AIを構成してuser_data_dirを使用し、インストールされたCapSolver拡張機能とその設定を保持するブラウザインスタンスを起動します。
  2. 拡張機能のインストールと設定: 手動でこのブラウザプロファイルにCapSolver拡張機能をインストールし、CapSolverのAPIキーを設定します。この拡張機能はAWS WAFチャレンジを自動的に解決するように設定できます。
  3. ターゲットページへのナビゲーション: Crawl4AIはAWS WAFで保護されたウェブページに移動します。
  4. 自動解決: ブラウザコンテキスト内で実行されるCapSolver拡張機能は、AWS WAFチャレンジを検出し、自動的にaws-waf-tokenクッキーを取得します。その後、このクッキーは以降のリクエストに自動的に適用されます。
  5. 操作の継続: 拡張機能によってAWS WAFが解決された後、Crawl4AIはスクラッピングタスクを継続できます。ブラウザコンテキストには、以降のリクエストに必要な有効クッキーが含まれています。

例: AWS WAFの拡張機能統合(自動解決)

この例は、Crawl4AIがCapSolver拡張機能を備えたブラウザプロファイルを構成し、AWS WAFの自動解決を実現する方法を示しています。

python Copy
import asyncio
import time

from crawl4ai import *


# TODO: あなたの設定を記入してください
user_data_dir = "/browser-profile/Default1" # このパスが正しく設定されており、構成済みの拡張機能が含まれていることを確認してください

browser_config = BrowserConfig(
    verbose=True,
    headless=False,
    user_data_dir=user_data_dir,
    use_persistent_context=True,
    proxy="http://127.0.0.1:13120", # 必要に応じてプロキシを構成するオプション
)

async def main():
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result_initial = await crawler.arun(
            url="https://nft.porsche.com/onboarding@6",
            cache_mode=CacheMode.BYPASS,
            session_id="session_captcha_test"
        )

        # 拡張機能はページロード時にAWS WAFを自動的に解決します。
        # 以降の操作を進める前に、WAFが解決されるまで待つ条件やtime.sleepを追加する必要があります。
        time.sleep(30) # 拡張機能が動作するための例としての待機時間です。必要に応じて調整してください

        # AWS WAFが解決された後、Crawl4AIの他の操作を継続します
        # たとえば、成功した検証後に表示される要素やコンテンツを確認できます
        # print(result_initial.markdown) # 待機後のページコンテンツを確認できます


if __name__ == "__main__":
    asyncio.run(main())

コード分析:

  1. user_data_dir: このパラメータは、インストールされたCapSolver拡張機能とその設定を保持するブラウザインスタンスを起動するためにCrawl4AIにとって不可欠です。パスが有効なブラウザプロファイルディレクトリを指していることを確認してください。拡張機能がインストールされています。
  2. 自動解決: CapSolver拡張機能は、AWS WAFチャレンジを自動的に検出し、解決するように設計されています。拡張機能がバックグラウンドで動作するまでに必要な時間を確保するために、time.sleepが含まれています。より堅牢なソリューションには、Crawl4AIのwait_for機能を使用して、AWS WAF解決が成功したことを示す特定のページ変更をチェックすることを検討してください。

例: AWS WAFの拡張機能統合(手動解決)

スクラッピングロジックの特定のポイントでAWS WAF解決を手動でトリガーしたい場合は、拡張機能のmanualSolvingパラメータをtrueに設定し、拡張機能が提供するソルバーのボタンをjs_codeを使用してクリックできます。

python Copy
import asyncio
import time

from crawl4ai import *


# TODO: あなたの設定を記入してください
user_data_dir = "/browser-profile/Default1" # このパスが正しく設定されており、構成済みの拡張機能が含まれていることを確認してください

browser_config = BrowserConfig(
    verbose=True,
    headless=False,
    user_data_dir=user_data_dir,
    use_persistent_context=True,
    proxy="http://127.0.0.1:13120", # 必要に応じてプロキシを構成するオプション
)

async def main():
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result_initial = await crawler.arun(
            url="https://nft.porsche.com/onboarding@6",
            cache_mode=CacheMode.BYPASS,
            session_id="session_captcha_test"
        )

        # ページがロードされ、拡張機能が準備ができることを待つ
        time.sleep(6)

        # CapSolver拡張機能が提供する手動解決ボタンをクリックするためのjs_codeを使用
        js_code = """
            let solverButton = document.querySelector(\'#capsolver-solver-tip-button\');
            if (solverButton) {
            // クリックイベント
                const clickEvent = new MouseEvent(\'click\', {
                    bubbles: true,
                    cancelable: true,
                    view: window
                });
                
                solverButton.dispatchEvent(clickEvent);
            }
        """
        print(js_code)
        run_config = CrawlerRunConfig(
            cache_mode=CacheMode.BYPASS,
            session_id="session_captcha_test",
            js_code=js_code,
            js_only=True,
        )
        result_next = await crawler.arun(
            url="https://nft.porsche.com/onboarding@6",
            config=run_config
        )
        print("JS実行結果:", result_next.js_execution_result)

        # 手動トリガー後にAWS WAFが解決される時間を確保します
        time.sleep(30) # 例としての待機時間です。必要に応じて調整してください

        # 他のCrawl4AI操作を継続します


if __name__ == "__main__":
    asyncio.run(main())

コード分析:

  1. manualSolving: このコードを実行する前に、CapSolver拡張機能のconfig.jsmanualSolvingtrueに設定してください。
  2. 解決のトリガー: js_codeは、CapSolver拡張機能が提供する#capsolver-solver-tip-buttonのクリックイベントをシミュレートします。これにより、AWS WAFの解決プロセスを開始するタイミングを正確に制御できます。

結論

Crawl4AIをCapSolverと統合することで、AWS WAFの保護を回避する堅牢で効率的なソリューションが得られ、ウェブスクラッピングやデータ抽出を中断することなく行えます。CapSolverが重要なaws-waf-tokenクッキーを取得し、Crawl4AIの柔軟なjs_code挿入機能を活用することで、開発者はWAF保護されたウェブサイトをスムーズにナビゲートできるようにできます。

この統合は、クローラーの安定性と成功確率を向上させ、複雑なアンチボットメカニズムの運用コストを大幅に削減します。この強力な組み合わせにより、最もセキュアに保護されたウェブアプリケーションからデータを確信を持って収集できます。

よくある質問(FAQ)

Q1: AWS WAFとは何ですか?ウェブスクラッピングで使用される理由は何ですか?
A1: AWS WAF(ウェブアプリケーションファイアウォール)は、一般的なウェブの脆弱性からウェブアプリケーションを保護するクラウドベースのセキュリティサービスです。ウェブスクラッピングでは、疑わしいまたは自動化されたリクエストをブロックするアンチボットメカニズムとして遭遇し、ターゲットデータにアクセスするために回避技術が必要です。

Q2: CapSolverはAWS WAFを回避するのにどう役立ちますか?
A2: CapSolverは、AntiAwsWafTaskProxyLessなどの専門的なサービスを通じてAWS WAFチャレンジを解決します。必要なaws-waf-tokenクッキーを取得し、Crawl4AIが正当なユーザーの行動を模倣して保護されたウェブサイトにアクセスするのを可能にします。
Q3: AWS WAFとCrawl4AIおよびCapSolverの主な統合方法は何ですか?
A3: 主に2つの方法があります。API統合では、CapSolverのAPIを呼び出してaws-waf-tokenを取得し、それをCrawl4AIのjs_codeを介して挿入します。ブラウザ拡張機能統合では、CapSolverの拡張機能が永続的なブラウザコンテキスト内でWAFチャレンジを自動的に処理します。

Q4: CapSolverを使用してAWS WAFを解決する際、プロキシを使用する必要がありますか?
A4: 必ずしも常に必要というわけではありませんが、スクリーピング操作で匿名性を維持する必要がある場合や、特定の地理的場所からのリクエストをシミュレートする必要がある場合、プロキシを使用すると役立ちます。CapSolverのタスクは通常、プロキシ設定をサポートしています。

Q5: AWS WAFに対してCrawl4AIとCapSolverを統合する利点は何ですか?
A5: 統合により、自動化されたWAF処理、クローリング効率の向上、ボット対策メカニズムに対するクラウラーの耐性の強化、そして手動介入を最小限に抑えることで操作コストの削減が実現されます。

参照

コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。

もっと見る

AWSキャプチャ/チャレンジの解決方法 Pythonで
AWSキャプチャ/チャレンジのPythonでの解決方法

PythonとCapSolverを使用したAWS WAFの課題の処理に関する実用的なガイド、保護されたウェブサイトへのスムーズなアクセスを可能にします

AWS WAF
Logo of CapSolver

Sora Fujimoto

04-Dec-2025

AWS (アマゾン) WAF キャプチャトークンの解決方法
AWS WAF CAPTCHA トークンの解決方法

このブログでは、CapSolverを使用して、AWS WAF CAPTCHAを高速で、低コストで、簡単に解決する方法を説明しています。

AWS WAF
Logo of CapSolver

Sora Fujimoto

01-Dec-2025

AWSのCaptchaをPuppeteer [Javascript]で解く方法
AWSキャプチャをPuppeteerで[JavaScript]を使用してCapSolver拡張機能を使って解決する方法

PuppeteerとCapsolverエクステンションを使用してAWSキャプチャをスムーズに解決する方法を学び、キャプチャの解決方法を効果的に設定および自動化するための詳細なガイド

AWS WAF
Logo of CapSolver

Sora Fujimoto

25-Nov-2025

エンタープライズオートメーションとウェブスクラピングのためのトップ5 AWS WAF チャレンジソルバーツール
エンタープライズオートメーションとウェブスクレイピング向けのトップ5 AWS WAF チャレンジソルバー ツール

AWS WAFを回避するシームレスなウェブスクレイピングおよびエンタープライズ自動化のための上位5つのチャレンジソルバーツールを発見。AWS WAFを回避する最適なソリューションを検索。

AWS WAF
Logo of CapSolver

Sora Fujimoto

13-Nov-2025

AWS WAF CAPTCHA ソルバー
AWS WAF CAPTCHAソルバー: トークン & 画像ソリューション for スクレイパー

ウェブスクリーピングや自動化におけるAWS WAF CAPTCHAチャレンジの解決方法を学ぶ。トークンベースおよび画像ベースのソリューション、APIとブラウザの統合、およびベストプラクティスに関する実践的なガイド。

AWS WAF
Logo of CapSolver

Sora Fujimoto

28-Oct-2025

自動解決 AWS WAF CAPTCHA
AWS WAF CAPTCHAの自動解決:ブラウザまたはAPI統合を用いて

ブラウザ拡張機能とAPI統合を使用してAWS WAF CAPTCHAを自動で解く方法を学びましょう。このガイドでは画像認識、トークンベースのチャレンジ、およびシームレスな自動化とウェブスクリーピングのためのCapSolverソリューションをカバーしています。

AWS WAF
Logo of CapSolver

Sora Fujimoto

23-Oct-2025