Selenium で Cloudflare Turnstile キャプチャを解決する方法

Sora Fujimoto
AI Solutions Architect
11-Oct-2024

あなたのウェブスクレイパーは、Cloudflareによってリクエストがブロックされているのでしょうか?CloudflareのTurnstile CAPTCHAは、自動化されたトラフィックを特定して妨げるために設計されており、ウェブスクレイピングと自動化に大きな障害となっています。しかし、Seleniumのようなヘッドレスブラウザを活用することで、これらの障害を効果的に回避できます。とはいえ、標準的なSeleniumのセットアップでは、Cloudflareの洗練された反ボット防御が依然としてトリガーされる可能性があります。
このブログでは、Seleniumを使用してCloudflare Turnstile CAPTCHAを克服するためのいくつかの効果的なテクニックについて説明します。
Cloudflare Turnstile CAPTCHAの理解
Cloudflare Turnstile CAPTCHAは、人間のユーザーと自動化されたボットを区別することを目的とした高度なチャレンジです。従来のCAPTCHAとは異なり、Turnstileは、マウスの動き、クリックパターン、その他のインタラクション指標などの、さまざまな動作とインタラクションに基づく評価を使用して、ユーザーの正当性を判断します。
なぜSeleniumを選ぶのか?
Seleniumは、ウェブブラウザを自動化する強力なツールであり、クリック、フォーム送信、ナビゲーションなどのユーザー操作をシミュレートできます。ただし、自動化された性質のため、従来のSeleniumのセットアップは、Cloudflareのセキュリティシステムによって依然としてフラグが立てられる可能性があります。Turnstile CAPTCHAを効果的に管理するには、Seleniumにその他のツールとテクニックを統合することで、ウェブスクレイピングの成功率を大幅に向上させることができます。
SeleniumでCloudflare Turnstile CAPTCHAを解決するための効果的なテクニック
1. CapSolverの実装
CAPTCHAを解決するための最も効率的な方法の1つは、CapSolverのようなCAPTCHA解決サービスを利用することです。このサービスは、高度なアルゴリズムと人間のソルバーを活用して、Cloudflare Turnstileを含むさまざまなCAPTCHAタイプを迅速かつ正確に解決します。
ボーナスコード
厄介なCAPTCHAを完全に解決できないために、何度も失敗していますか?
CapsolverのAI搭載の自動ウェブアンブロックテクノロジーで、シームレスな自動CAPTCHA解決を体験しましょう!
最高のCAPTCHAソリューションのためのボーナスコードを取得しましょう;CapSolver: WEBS。これを引き換えると、チャージごとに5%のボーナスが追加され、無制限になります。
実装手順:
- CapSolverアカウントに登録します。
- SeleniumスクリプトにCapSolverのAPIを統合します。
コード例:
python
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # あなたのCapsolverのAPIキー
site_key = "0x4XXXXXXXXXXXXXXXXX" # ターゲットサイトのサイトキー
site_url = "https://www.yourwebsite.com" # ターゲットサイトのページURL
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'AntiTurnstileTaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url,
"metadata": {
"action": "" # オプション
}
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Failed to create task:", res.text)
return
print(f"Got taskId: {task_id} / Getting result...")
while True:
time.sleep(1) # 遅延
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('token')
if status == "failed" or resp.get("errorId"):
print("Solve failed! response:", res.text)
return
token = capsolver()
print(token)
このコードでは、YOUR_API_KEY、0x4XXXXXXXXXXXXXXXXX、https://www.yourwebsite.comを、実際のCapSolverのAPIキー、ターゲットサイトのサイトキー、ターゲットとするページのURLにそれぞれ置き換えてください。このスクリプトは、Turnstile CAPTCHAを解決するためのタスクを作成し、ソリューショントークンを返します。
2. 検知されないChromeDriverの使用
Cloudflareによる検知を避けるために、ChromeDriverの検知されないバージョンを使用することが重要です。Cloudflareの反ボットシステムは、標準的なChromeDriverインスタンスを簡単に認識し、CAPTCHAのチャレンジを引き起こす可能性があります。検知されないChromeDriverは、ブラウザのフィンガープリントと動作を変更することで、検知される可能性を最小限に抑えます。
実装手順:
- undetected-chromedriverなどの検知されないChromeDriverパッケージをダウンロードします。
- Seleniumが、この修正されたバージョンを使用するように構成します。
コード例:
python
from undetected_chromedriver.v2 import Chrome, ChromeOptions
options = ChromeOptions()
options.add_argument('--headless') # 必要に応じてヘッドレスモードを使用
driver = Chrome(options=options)
driver.get('https://example.com')
# 必要な操作を実行し、CAPTCHAを処理します
3. SeleniumBaseの活用
SeleniumBaseは、Seleniumの拡張機能であり、ウェブスクレイピングの機能と使いやすさを向上させます。ウェブインタラクションの管理を簡素化し、複雑なタスクをより効果的に自動化します。
実装手順:
-
pipを使用してSeleniumBaseをインストールします。
bashpip install seleniumbase
-
SeleniumBaseの機能を使用して、ウェブインタラクションを管理し、CAPTCHAを処理します。
コード例:
python
from seleniumbase import BaseCase
class MyTestClass(BaseCase):
def test_example(self):
self.open('https://example.com')
# 必要な操作を実行し、CAPTCHAを処理します
4. Selenium Stealthプラグインの利用
Selenium Stealthプラグインは、自動化の取り組みを隠すのに役立ち、Cloudflareがボットの使用を検知することをより困難にします。このプラグインは、ブラウザの動作を変更して、現実的なユーザーインタラクションをシミュレートします。
実装手順:
-
Selenium Stealthプラグインをインストールします。
bashpip install selenium-stealth
-
Seleniumのセットアップにプラグインを統合します。
コード例:
python
from selenium import webdriver
from selenium_stealth import stealth
driver = webdriver.Chrome()
stealth(driver,
languages=["en-US", "en"],
vendor="Google Inc.",
platform="Windows",
webgl_vendor="Google Inc.",
render="WebKit",
fix_hairline=True
)
driver.get('https://example.com')
# 必要な操作を実行し、CAPTCHAを処理します
5. プレミアムプロキシの利用
プレミアムプロキシを使用すると、トラフィックを複数のアドレスに分散させることで、IP禁止を回避できます。高品質のプロキシは、Cloudflareによる検知とブロックのリスクを大幅に軽減します。
実装手順:
- 信頼できるプロバイダーからプレミアムプロキシのリストを入手します。
- Seleniumが、これらのプロキシをウェブリクエストに使用するように構成します。
まとめ
Cloudflare Turnstile CAPTCHAを効果的に回避するには、高度なテクニックとツールの組み合わせが必要です。CapSolverをSeleniumに統合し、検知されないChromeDriverバージョンを使用し、SeleniumBaseを活用し、ステルスプラグインを採用し、プレミアムプロキシを使用することで、ウェブスクレイピングの能力を高め、ウェブセキュリティプロトコルに準拠することができます。常に倫理的な基準に従い、これらのツールをウェブスクレイピングの取り組みで責任を持って使用してください。
コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

2025年にPythonとGoを使ってCloudflareを解決する方法
Cloudflare Turnstile についての洞察を共有し、Python と Go を使用してこれらのタスクを実行します。Turnstile が Python スクラッパーを検出できるかどうか、そして CapSolver などのソリューションを使用してそれを効果的にバイパスする方法について説明します。

Sora Fujimoto
05-Nov-2024

Selenium で Cloudflare Turnstile キャプチャを解決する方法
本ブログでは、Selenium を使用して Cloudflare Turnstile Captcha を克服するための効果的な手法をいくつか紹介します。

Sora Fujimoto
11-Oct-2024

ウェブオートメーションにおけるJavaでのCloudflare Turnstileキャプチャの解決ガイド
Java でウェブ操作を自動化し、実用的なツールとコーディングテクニックを使って Cloudflare Turnstile CAPTCHA を回避する方法を学びましょう。

Sora Fujimoto
08-Oct-2024

ウェブクローリングのためのCloudflare Turnstile解決を自動化する 방법
WebクローリングにおけるCloudflare Turnstile CAPTCHAの処理戦略を探求し、PuppeteerとCapSolverを用いた自動化ソリューションの技術についてPythonで解説します。

Sora Fujimoto
27-Sep-2024

C# を使用して Cloudflare Turnstile CAPTCHA チャレンジを解決する方法
C# を使って Cloudflare Turnstile の CAPTCHA チャレンジを簡単に解決する方法を知りたい、そして詳細を知りたい?さあ、始めましょう!

Sora Fujimoto
17-Sep-2024