ガイド
タスク(トークン)
DataDome

Datadome: DataDomeキャプチャの解決

TIP

タスクは [createTask](../api-createtask.md) メソッドで作成し、結果は [getTaskResult](../api-gettaskresult.md) メソッドで取得します。

DANGER

ℹ️ このタスクタイプには、独自のプロキシが必要です。

ℹ️ userAgentが一致していることを確認してください。APIに送信するuserAgentは、使用するものと同じである必要があります。

Datadome types we support both:

スライダーキャプチャインターレスティシャル(デバイスチェック)

サポートされているタスクタイプ types:

  • DatadomeSliderTask このタスクタイプには独自のプロキシが必要です。

タスクの作成

[createTask](../api-createtask.md) メソッドでタスクを作成します。

Attention You must observe whether the `t` parameter in `captchaUrl` is equal to `fe`. If `t=bv` means that

captchaUrl内のtパラメータがfeと等しいかどうかを注意深く確認する必要があります。もしt=bvであれば、あなたのIPが直接バンされていることを意味し、IPを変更する必要があります。

タスクオブジェクト構造

プロパティタイプ必須説明
typeString必須DataDomeSliderTask (スライダーとインターレスティシャルの両方でこのタイプを使用します)
captchaUrlString必須URLにt=bvが含まれている場合、それはあなたのIPがバンされていることを意味し、tt=feである必要があります
userAgentString必須ウェブサイトをリクエストするために使用するuserAgentと同じである必要があります。現在、以下のuserAgentのみをサポートしています
proxyString必須プロキシの使用方法 を学ぶ
WARNING

ウェブサイトをリクエストする際には、当社が提供する固定のuserAgentを使用してください。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36

リクエスト例

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "DatadomeSliderTask",
    "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
    // userAgentはあなたが使用しているものです:
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
    "proxy": "158.120.100.23:334:user:pass",
  }
}

レスポンス例

{
  "errorId": 0,
  "status": "idle",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

結果の取得

[getTaskResult](../api-gettaskresult.md) メソッドを使用して認識結果を取得します。

システム負荷に応じて、1秒から20秒の間に結果が得られます。

リクエスト例

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": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
    "cookie": "datadome=yzj_BK...S0; Max-Age=31536000; Domain=; Path=/; Secure; SameSite=Lax"
  },
  "status": "ready"
}

エラーのトラブルシューティング

よくあるエラー

  1. APIから返されたクッキーが機能しない — 依然として403エラーが発生する。
  2. APIが「Proxy IP banned by target service」を返す。
  3. APIが「Failed to solve the captcha: 1013」を返す。

トラブルシューティング手順

  1. プロキシを変更してみてください – あなたのIPがブラックリストに載っている可能性があります。
  2. プロキシタイプを確認してください – 一部のサイトではIPの一貫性を検証します。ローテーションプロキシを使用している場合は、スティッキープロキシへの切り替えを試してください。
  3. userAgentを確認してください – APIに送信されるuserAgentは、ターゲットサイトで使用されるものと一致している必要があります。
  4. Accept-Languageを確認してください – 一部のサイトでは、サイトの地域言語と一致させる必要があります。
  5. コード/プログラムをデバッグします(例:TLS、ヘッダー):
  • ブラウザからDataDomeクッキーを手動でコードにコピーして、再実行してください。
  • それでも失敗する場合は、コードに問題がある可能性が高いです。TLSとヘッダーを検査してください。
  1. ヘッダーを確認してください – ヘッダーの順序を含め、実際のブラウザから送信されたものと一致していることを確認してください。
  2. TLSフィンガープリンティングを確認してください – 実際のTLSハンドシェイクを模倣するライブラリを使用してください。
  3. すべての確認後もエラーが続く場合は、弊社に問題を報告してください。

SDKリクエストの使用

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "DatadomeSliderTask",
    "websiteURL": "https://bck.websiteurl.com/",
    "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
    # userAgentはあなたが使用しているものです:
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
    "proxy": "158.120.100.23:334:user:pass"
})

サンプルコード

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # capsolverのAPIキー
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'DatadomeSliderTask',
            "websiteURL": "https://bck.websiteurl.com/",
            "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
            "proxy": "158.120.100.23:334:user:pass",
		    "userAgent": "サポートされているuserAgentを使用してください。使用しているものと一致する必要があります。"
        }
    }
    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("cookie")
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
cookie = capsolver()
print(cookie)