ReCaptchaV3: reCAPTCHA v3の解決
TIP
createTaskメソッドでタスクを作成し、getTaskResultメソッドで結果を取得します。
サポートするタスクのtypes
ReCaptchaV3Task
このタスクタイプには独自のプロキシが必要です。ReCaptchaV3EnterpriseTask
このタスクタイプには独自のプロキシが必要です。ReCaptchaV3TaskProxyLess
サーバー内蔵のプロキシを使用します。ReCaptchaV3EnterpriseTaskProxyLess
サーバー内蔵のプロキシを使用します。
タスクの作成
createTaskメソッドを使用して認識タスクを作成します。
タスクを作成する前に、以下の情報を学ぶことができます。
無効な応答を受け取った場合は、次の情報を学ぶことができます。
タスクオブジェクトの構造
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | Required | ReCaptchaV3Task ReCaptchaV3TaskProxyLess ReCaptchaV3EnterpriseTask ReCaptchaV3EnterpriseTaskProxyLess |
websiteURL | String | Required | reCaptchaを使用しているウェブサイトのWebアドレス、一般的には固定値です。 (例: https://google.com) |
websiteKey | String | Required | ドメインの公開キー、ほとんど更新されないことがあります。 (例: b989d9e8-0d14-41sda0-870f-97b5283ba67d) |
proxy | String | Optional | プロキシの使用方法を学びます |
pageAction | String | Optional | v2サイトの場合:anchor要求にsaパラメータがある場合、そのパラメータを渡す v3サイトの場合:actionパラメータを見つけるために検索 grecaptcha.execute |
enterprisePayload | Object | Optional | エンタープライズ検索grecaptcha.enterprise.render 、sパラメータを渡す |
isInvisible | Bool | Optional | いいえ、私はロボットではありませんが、それでも課題が発生する場合は、trueを渡してください。通常はv2ステルスモードで必要です |
isSession | Bool | Optional | sessionモード、有効にするとクッキーとして使用されるrecaptcha-ca-t 値が返され、通常はv3に表示されます注意:あるウェブサイトは recaptcha-ca-e 値を必要として、通常v2の中で現れて、もしこの値があるならば自動的に戻って、その他の追加のパラメータの設定を必要としません |
apiDomain | String | Optional | 認証コードをロードするドメイン名。通常はこのパラメータを渡す必要はありません • http://www.google.com/ • http://www.recaptcha.net/ |
WARNING
パラメータをどのように渡すべきかわからない場合は、私たちのブログcapsolver拡張を使用してパラメータを自動取得します。
tokenのスコアが低いことがわかった場合は、拡張されたjsonデータをカスタマーサービスに送信して最適化します。
例のリクエスト
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV3Task",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN" // Optional
},
"pageAction": "submit", // Optional
"apiDomain": "", // Optional
"proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass, Optional
}
}
タスクを提出した後、成功した場合はレスポンスで ‘タスクID’ を受け取るはずです。 タスクIDを受け取らなかった場合は、エラーコード:エラーの完全なリストを読んでください。
例のレスポンス
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
結果の取得
タスクIDを取得したら、タスクIDを送信して解決策を取得する必要があります。レスポンス構造はgetTaskResultで説明されています。
システムの負荷に応じて、結果は1秒
から10秒
の間で受け取ることができます。
例のリクエスト
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
例のレスポンス
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"userAgent": "xxx", // User-Agent
"createTime": 1671615324290, // token 生成時間
"gRecaptchaResponse": "3AHJ......", // token
"recaptcha-ca-t": "AbEM......", // 一部のv 3サイトにはsessionモードがあり、isSessionを有効にするとこのパラメータが返され、cookieとして使用されます
"recaptcha-ca-e": "Abp_......" // 一部のv 2サイトにはこのパラメータがあり、cookieとして使用されています。この値があれば自動的に戻ります
},
"status": "ready"
}
SDKを使用したリクエスト
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ReCaptchaV3TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-", ...
})