Cloudflare: チャレンジの解決
TIP
タスクはcreateTaskメソッドで作成し、結果はgetTaskResultメソッドで取得します。
Note
- プロキシは必須です。ローテーションプロキシではなく、静的プロキシまたはスティッキープロキシを使用してください。
- カスタムuserAgentをサポートしています。使用しているuserAgentと同じものを維持してください。
- ソリューションの取得に失敗した場合、IPがブロックされている可能性があります。プロキシの変更を試してください。
- ターゲットウェブサイトにリクエストするには、TLSリクエストライブラリを使用する必要があります。
タスクタイプ type は以下の通りです。
AntiCloudflareTask
タスクの作成
createTaskメソッドでタスクを作成します。
タスクオブジェクトの構造
| Properties | Type | Required | Description |
|---|---|---|---|
| type | String | Required | AntiCloudflareTask |
| websiteURL | String | Required | ターゲットページのURLです。 |
| proxy | String | Required | 使用する静的プロキシまたはスティッキープロキシ。 プロキシの使用方法を参照してください。 |
| userAgent | String | Optional | ターゲットウェブサイトへのリクエストに使用した user-agent です。ChromeのuserAgentのみがサポートされています。 |
| html | String | Optional | ターゲットウェブサイトへのリクエストの応答です。通常、「Just a moment…」というテキストとステータスコード403を含みます。一部のウェブサイトではHTMLが必要です。 |
リクエスト例
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
"html": "<!DOCTYPE html><html lang=\"en-US\"><head><title>Just a moment...</title>...",
"proxy": "ip:port:user:pass"
}
}レスポンス例
{
"errorId": 0,
"status": "idle",
"taskId": "df944101-64ac-468d-bc9f-41baecc3b8ca"
}
結果の取得
認識結果を取得するには、getTaskResultメソッドを使用します。
ウェブサイトやプロキシによっては、2秒から20秒の間に結果が得られます。
リクエスト例
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json{
"clientKey": "YOUR_API_KEY",
"taskId": "df944101-64ac-468d-bc9f-41baecc3b8ca"
}レスポンス例
{
"errorId": 0,
"taskId": "df944101-64ac-468d-bc9f-41baecc3b8ca",
"status": "ready",
"errorCode": "",
"errorDescription": "",
"solution": {
"cookies": {
"cf_clearance": "Bcg6jNLzTVaa3IsFhtDI.e4_LX8p7q7zFYHF7wiHPo...uya1bbdfwBEi3tNNQpc"
},
"token": "Bcg6jNLzTVaa3IsFhtDI.e4_LX8p7q7zFYHF7wiHPo...uya1bbdfwBEi3tNNQpc",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
}
}SDKリクエストの使用
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "ip:port:user:pass"
})サンプルコード
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # your api key of capsolver
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "ip:port:user:pass"
}
}
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) # delay
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", {})
if status == "failed" or resp.get("errorId"):
print("Solve failed! response:", res.text)
return
token = capsolver()
print(token)