
Sora Fujimoto
AI Solutions Architect

reCAPTCHAはウェブコンテンツを保護するのに効果的ですが、研究、データ分析、またはコンプライアンス駆動の自動化タスクなど、正当な活動を妨げる場合があります。これらのタスクには、ウェブサービスと対話する必要があります。
このブログでは、JavaScriptを使用してreCAPTCHAチャレンジを解決するための手順を紹介します。開発環境の設定、ウェブページとの対話にPuppeteerの使用、およびreCAPTCHA v2とv3の解決策の実装について学びます。このチュートリアルの終わりには、プログラムでreCAPTCHAチャレンジを解決する方法を理解し、自分のプロジェクトにこの知識を統合できるようになります。
reCAPTCHAは、人間のユーザーとボットを区別するためのCAPTCHAタイプで、ユーザーに簡単だが機械には難しいチャレンジを提示します。数年間で、reCAPTCHAはユーザーがタイプする歪んだテキストから、より複雑な画像ベースのパズル、そして現在ではサイト上のユーザーの行動に基づいてスコアを付けるほぼ非表示のバージョンに進化してきました。
CapSolverのボーナスコードを引き換える
自動化予算をすぐに増やす!
CapSolverアカウントにチャージする際にボーナスコード CAPN を使用して、毎回 5%のボーナス を獲得
.
reCAPTCHA v2: このバージョンは「I'm not a robot」のチェックボックスや画像ベースのチャレンジで広く知られています。ユーザーが画像をクリックするか、特定のアクションを確認する必要。これは、人間とボットを区別するのに効果的です。

reCAPTCHA v3: v2とは異なり、reCAPTCHA v3は非表示で動作で動作します。ユーザー

ウェブスクラピング、自動テスト、またはフォーム自動化などのプロジェクトに取り組む開発者にとって、reCAPTCHAに遭遇することは大きな障害となることがあります。毎回手動でreCAPTCHAを解決することは自動化シナリオでは不可能実的ではありません。その
このチュートリアルに従うために、以下の前提条件を満たしている必要があります。
これらの前提条件を満たした後、環境を設定して、とCapSolverを使用してreCAPTCHAチャレンジを解決する準備が整います。
のリクエストを検索し、k=`の後の値をサイトキーとして取得します。または、CapSolver拡張機能でreCAPTCHAのパラメータをすべて見つけることもできます。pip install requests
import requests
import time
from DrissionPage import ChromiumPage
# ChromiumPageのインスタンスを作成
page = ChromiumPage()
# reCAPTCHAをトリガーする例のページにアクセス
page.get("https://www.google.com/recaptcha/api2/demo")
# TODO: 設定を設定
api_key = "your api key of capsolver" # CapSolverのAPIキー
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # ターゲットサイトのサイトキー
site_url = "https://www.google.com/recaptcha/api2/demo" # ターゲットサイトのページURL
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
# CapSolverにタスクを作成するリクエストを送信
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("タスクの作成に失敗しました:", res.text)
return
print(f"タスクIDを取得しました: {task_id} / 結果を取得中...")
while True:
time.sleep(3) # 待機時間
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('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("解決に失敗しました!
**説明:**
1. **サイトキーの取得**: ブラウザのリクエストログで `k=` パラメータを含むリクエストを検索し、`k=` の後の値をサイトキーとして抽出します。
2. **設定の設定**: コード内の `api_key`、`site_key`、`site_url` を実際の値に置き換えます。
3. **コードの実行**: `check()` 関数を呼び出すことで、コードは自動的にreCAPTCHAの解決策を取得し、フォームを送信します。
対象のウェブサイトとその利用規約および法を遵守することを確認してください。
## 結論
JavaScriptを使用してreCAPTCHAチャレンジをプログラムで解決することは、CAPTCHAで保護されたウェブサービスと対話するタスクを
## コンプライアンスに関する注意
> **重要**: ウェブスクラピングを行う際は、法的および倫理的なガイドラインに従うことが不可欠です。ターゲットサイトのスカーティングングを許可していることを確認し、サイトの `robots.txt` ファイルと利用規約を尊重してください。**CapSolverは、いかなる非コンプライアンスな活動にもわれることを強く反対しています**。許
## FAQ
### 1. CapSolverなどのツールを使用してreCAPTCHAをプログラムで解決することは合法ですか?
自動化ツールを使用してreCAPTCHAを解決することは、**適切な承認を伴い、ターゲットサイトの利用規約に準拠している場合に限り合法です**。
研究、品質保証テスト、または内部自動化などの活動は通常に許容されます。
しかし、承認なしにCAPTCHA解決サービスを使用してスカウピングやスパム、セキュリティ制限を
### 2. なぜ通常のHTTPリクエストではなく、またはPuppeteerを使用してreCAPTCHAを解決する必要がありますか?
reCAPTCHA v2、v3、Enterpriseは、単純なトークン以上の複数の要因に依存しています。例えば
### 3. CapSolverからトークンを取得しましたが、フォームが送信されません。何が問題でしょうか?
reCAPTCHAのバイパスが正しく動作しない要はいくつかあります。
**一般的な原因:**
- 間違ったまたは古くなった **サイトキー**
- CapSolverに渡された間違った **ウェブサイトURL**
- トークンが間違ったDOM要素に挿入された
- コールバックの実行が不足如している(例: `onSuccess()` がトリガーされない)
- ページが追加のユーザー操作を期待っている
- サイトがEnterprise reCAPTCHAを使用している(別のタスクタイプが必要)
**推奨されるチェック:**
1. あなたの `site_key` と `site_url` がページの実際の値と一致しているか確認してください。
2. トークンが `g-recaptcha-response` フィールドに正しく挿入されているか確認してください。
3. 必要に応じて、サイトの成功コールバックを手動でトリガーしてください。
4. サイトがEnterpriseを使用している場合、`ReCaptchaEnterpriseTaskProxyLess` に切り替えてください。
5. ブラウザのログを確認し、フォームの信を妨げるJavaScriptエラーがないか確認してください。
「reCAPTCHA 無効なサイトキー」や「無効なreCAPTCHAトークン」のエラーに直面していますか?一般的な原因、ステップバイステップの修正手順、トラブルシューティングのヒントを確認してください。reCAPTCHAの検証失敗の問題を解決する。reCAPTCHAの検証失敗を修正する方法を学びましょう。もう一度試してください。

PythonとAPIを使用してreCAPTCHA v2を解決する方法を学びましょう。この包括的なガイドでは、プロキシとプロキシレスな方法をカバーし、自動化に使用可能な本番環境対応のコードを提供しています。
