
Sora Fujimoto
AI Solutions Architect

クラウドフレア・ターニスティールは、ユーザーに干渉するチャレンジなしで正当なユーザーを検証するためのスマートなCAPTCHAの代替です。これは、ブラウザの動作や特性を評価してトークンを発行し、そのトークンをサーバーに送信して検証します。人間の訪問者とボットをスムーズに区別することを目指しています。プライバシーを保護し、ユーザーに優しい設計となっていますが、ウェブスクレイピングやデータ抽出ツールにとっては、いくつかの大きな課題をもたらします。
この記事では、高度なウェブクローラーであるCrawl4AIと、CAPTCHAおよびアンチボットソリューションサービスとしてリーディングを誇るCapSolverを統合して、クラウドフレア・ターニスティールの保護を効果的に回避する方法について詳しく説明します。APIベースの統合とブラウザ拡張機能ベースの統合の2つの方法をカバーし、実用的なコード例と説明を提供して、ウェブ自動化タスクがスムーズに進行できるようにします。
クラウドフレア・ターニスティールは、訪問者の行動やブラウザの特性を評価してトークンを発行し、そのトークンをサーバーに送信して検証します。プライバシーを保護し、ユーザーに優しい設計となっていますが、ウェブクローラーにとっては次の課題があります。
cf-turnstile-response)にトークンを挿入する必要があります。CapSolverは、高度なAIアルゴリズムを活用して、クラウドフレア・ターニスティールのCAPTCHAを高精度で迅速に解決するソリューションを提供します。Crawl4AIと統合することで、この複雑なアンチボットメカニズムを管理可能なステップに変換し、ウェブ自動化タスクがスムーズかつ中断することなく進行できるようにします。
💡 Crawl4AI統合ユーザー向けの特典:
本統合を記念して、このチュートリアルを通じて登録したCapSolverユーザーに、6%のボーナスコード —CRAWL4を提供しています。
ダッシュボードでチャージ時にコードを入力すると、即座に6%のクレジットが追加されます。
API統合方法は正確な制御を提供し、柔軟性があるため多くの場合で好まれます。これは、CapSolverを用いてターニスティールトークンを取得し、その後Crawl4AIのjs_code機能を介してターゲットウェブページの適切な入力要素にこのトークンを挿入することを含みます。
AntiTurnstileTaskProxyLessタイプとwebsiteURL、websiteKeyを指定してCapSolverのAPIを呼び出します。CapSolverは必要なターニスティールトークンを返します。js_codeパラメータを使用して、Crawl4AIのCrawlerRunConfig内で取得したトークンをcf-turnstile-responseという名前のinput要素に挿入します。トークンの挿入後、送信ボタンをクリックするか、トークンに依存する次のアクションをトリガーします。次のPythonコードは、CapSolverのAPIをCrawl4AIと統合してクラウドフレア・ターニスティールを解決する方法を示しています。この例は、クラウドフレア・ターニスティールのデモページをターゲットにしています。
import asyncio
import capsolver
from crawl4ai import *
# TODO: あなたの設定を設定してください
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # CapSolverのAPIキー
site_key = "0x4AAAAAAAGlwMzq_9z6S9Mh" # ターゲットサイトのサイトキー
site_url = "https://clifford.io/demo/cloudflare-turnstile" # ターゲットサイトのページURL
captcha_type = "AntiTurnstileTaskProxyLess" # ターゲットのCAPTCHAのタイプ
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を用いてターニスティールトークンを取得
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["token"]
print("ターニスティールトークン:", token)
js_code = """
document.querySelector(\'input[name="cf-turnstile-response"]\').value = \'"""+token+"""\';
document.querySelector(\'button[type="submit"]\').click();
"""
wait_condition = """() => {
const items = document.querySelectorAll(\'h1\');
return items.length === 0;
}"""
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())
コード分析:
capsolver.solveメソッドは、AntiTurnstileTaskProxyLessタイプ、websiteURL、websiteKeyを指定して呼び出され、ターニスティールトークンが取得されます。このトークンはCapSolverが提供する解決策です。js_code): js_code文字列には、ページ上のinput要素name="cf-turnstile-response"を検索し、取得したトークンをvalueプロパティに割り当て、その後送信ボタンをクリックするJavaScriptが含まれています。これにより、フォームが有効なターニスティールトークンで送信されます。wait_for条件: wait_conditionは、ページ上の特定の変化(例: h1要素の消失)が発生するまでCrawl4AIが待機することを定義しています。これにより、送信およびナビゲーションが成功したことを示します。CapSolverのブラウザ拡張機能は、Crawl4AIが管理する永続的なブラウザコンテキスト内で自動解決機能を活用する場合に、クラウドフレア・ターニスティールを扱う簡略化された方法を提供します。
user_data_dirを使用し、インストールされたCapSolver拡張機能とその設定を保持するブラウザインスタンスを起動します。cf-turnstile-response入力フィールドに挿入されます。この例は、Crawl4AIがCapSolver拡張機能を備えたブラウザプロファイルを設定して、クラウドフレア・ターニスティールを自動的に解決する方法を示しています。
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://clifford.io/demo/cloudflare-turnstile", # クラウドフレア・ターニスティールのデモURLを使用してください
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# 拡張機能はページ読み込み時にCAPTCHAを自動的に解決します。
# CAPTCHAが解決されるまでに待機条件またはtime.sleepが必要な場合があります。
# ここでは拡張機能が動作するための一般的な待機時間を示しています。
time.sleep(30) # 例としての待機時間、拡張機能の動作に応じて調整してください
# CAPTCHAが解決された後、他のCrawl4AI操作を継続します
# たとえば、成功した検証後に表示される要素やコンテンツをチェックできます
# print(result_initial.markdown) # 待機後のページコンテンツを確認できます
if __name__ == "__main__":
asyncio.run(main())
コード分析:
user_data_dir: このパラメータは、インストールされたCapSolver拡張機能とその設定を保持するブラウザインスタンスを起動するためにCrawl4AIにとって不可欠です。拡張機能がインストールされている有効なブラウザプロファイルディレクトリへのパスを確認してください。time.sleepが含まれています。より堅牢な解決策には、Crawl4AIのwait_for機能を使用して、ターニスティールの解決が成功したことを示す特定のページ変更をチェックすることを検討してください。Crawl4AIとCapSolverの統合は、クラウドフレア・ターニスティールを回避するための強力で効率的なソリューションを提供し、ウェブスクレイピング操作の信頼性を大幅に向上させます。API統合の正確な制御またはブラウザ拡張機能によるシームレスな自動化を好むかどうかに関わらず、両方の方法はクラウドフレア・ターニスティールがデータ収集目標を妨げることなく、スムーズに動作することを保証します。
ターニスティールの解決を自動化することで、開発者は価値あるデータの抽出に集中でき、クローラーが保護されたウェブサイトをシームレスにナビゲートできると確信できます。Crawl4AIの高度なクローリング機能とCapSolverの強力なアンチボット技術のシナジーは、自動化されたウェブデータ抽出において重要な一歩を踏み出しています。
Q1: クラウドフレア・ターニスティールとは何か、従来のCAPTCHAとどう違うのか?
A1: クラウドフレア・ターニスティールは、ユーザーに干渉するチャレンジなしで正当なユーザーを検証するCAPTCHAの代替です。従来のCAPTCHAがパズルの解決を必要とするのに対し、ターニスティールは非干渉的なJavaScriptチャレンジをバックグラウンドで実行し、ユーザー体験をスムーズにしながら人間とボットを効果的に区別することを目指しています。
Q2: クラウドフレア・ターニスティールで保護されたウェブサイトをスクレイピングするのはなぜ難しいのか?
A2: ターニスティールの非表示性、動的なJavaScript実行への依存、および特定の入力フィールド(cf-turnstile-response)に有効なトークンを挿入する必要性により、自動ウェブスクレイパーにとって困難です。ブラウザの特性やユーザーの行動を評価し、本物のユーザー操作を模倣しないリクエストをブロックすることがあります。
Q3: CapSolverはクラウドフレア・ターニスティールを回避するのをどうやって助けるのか?
A3: CapSolverは、AntiTurnstileTaskProxyLessなどの専門的なサービスを提供してクラウドフレア・ターニスティールチャレンジを解決します。必要なターニスティールトークンを取得し、その後Crawl4AIがターゲットウェブページに挿入することで保護を回避します。
Q4: Crawl4AIとCapSolverでクラウドフレア・ターニスティールを統合する主な2つの方法は何か?
A4: 主な2つの方法は、API統合とブラウザ拡張機能統合です。API統合では、CapSolverのAPIを呼び出してトークンを取得し、Crawl4AIのjs_codeを介して挿入します。ブラウザ拡張機能統合では、CapSolver拡張機能が永続的なブラウザコンテキスト内でターニスティールチャレンジを自動的に処理します。
Q5: クラウドフレア・ターニスティールにCrawl4AIとCapSolverを統合する利点は何か?
A5: この統合により、ターニスティールの自動処理、クローリング効率の向上、アンチボットメカニズムに対するクローラーの耐性の向上、手動介入を最小限に抑えて運用コストを削減し、ウェブデータ抽出を中断することなく行うことが可能になります。
Cloudflareエラー1005:アクセスが拒否されました。ウェブスクリーピング中にこれを修正する方法を学びましょう。リジデンシャルプロキシ、ブラウザファイントラッキング、CAPTCHA用のCapSolverなどの解決策を発見してください。データ抽出を最適化してください。

Cloudflare TurnstileをAIワークフローで効果的に処理する方法を学び、Playwrightのステルス手法とCapSolverを活用して信頼性の高いキャプチャ解決を実現します。実用的な統合戦略と、途切れることのないオートメーションのためのベストプラクティスを学びましょう。
