AwsWafCaptcha: menyelesaikan AWS WAF
Buat tugas dengan metode createTask dan dapatkan hasilnya dengan metode getTaskResult.
Tipe tugas types yang kami dukung:
- AntiAwsWafTasktipe tugas ini membutuhkan proksi Anda sendiri.
- AntiAwsWafTaskProxyLesstipe tugas ini tidak membutuhkan proksi Anda sendiri.
Membuat Tugas
Buat tugas pengenalan dengan metode createTask.
Struktur Objek Tugas
| Properti | Tipe | Wajib | Deskripsi | 
|---|---|---|---|
| type | String | Wajib | AntiAwsWafTaskAntiAwsWafTaskProxyLess | 
| proxy | String | Opsional | Pelajari Menggunakan proksi | 
| websiteURL | String | Wajib | URL halaman yang mengembalikan informasi terkait captcha | 
| awsKey | String | Opsional | Nilai keyyang dikembalikan oleh halaman captcha | 
| awsIv | String | Opsional | Nilai ivyang dikembalikan oleh halaman captcha | 
| awsContext | String | Opsional | Nilai contextyang dikembalikan oleh halaman captcha | 
| awsChallengeJS | String | Opsional | Tautan challenge.jsyang dikembalikan oleh halaman captcha | 
| awsApiJs | String | Opsional | Tautan jsapi.jsyang dikembalikan oleh halaman captcha | 
| awsProblemUrl | String | Opsional | URL endpoint problemyang mengandung kata kunci sepertiproblem,num_solutions_required, dll. | 
| awsApiKey | String | Opsional | Nilai api_keydari endpointproblem | 
| awsExistingToken | String | Opsional | aws-waf-tokenyang digunakan untuk verifikasi terakhir | 
Jika Anda tidak yakin parameter mana yang harus diteruskan ke capsolver, silakan lihat skenario berikut untuk kombinasi parameter yang berbeda. Jika situasi Anda tidak tercakup, silakan hubungi layanan pelanggan kami untuk bantuan.
| Situasi | Parameter yang Dilewatkan | Prasyarat | 
|---|---|---|
| Situasi 1 | websiteURL | Kode respons halaman captcha aws mungkin 405, dan parameter berikut dapat ditemukan di html: window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."} | 
| Situasi 2 | websiteURLawsKeyawsIvawsContextawsChallengeJS | Berdasarkan prasyarat situasi 1, jika capsolver mengembalikan pesan error: Captcha render unexpect status code XXX, please pass in the awsKey, awsIv, awsContext and awsChallengeJs parameters, Ini menunjukkan bahwa server tidak memicu captcha. Harap uraikan secara manual parameter key, iv, dan context dan teruskan ke capsolver.Perhatian khusus Jika Anda menerima pesan error yang mengatakan  timeout metering, your parameters have expired, please update awsKey, awsIv, awsContext or awsChallengeJS., itu menunjukkan bahwa empat parameter yang Anda berikan tidak saling berhubungan atau telah kedaluwarsa. Disarankan untuk mengurai semua parameter secara real-time untuk setiap permintaan. | 
| Situasi 3-1 | websiteURLawsChallengeJS | Ketika halaman tidak dapat menemukan key, iv, context, tetapi memiliki challenge.js, teruskan challenge.js ke capsolver sebagai nilai awsChallengeJS. | 
| Situasi 3-2 | websiteURLawsApiJs | Berdasarkan situasi 3-1, jika tidak jelas dari mana challenge.js berasal, tetapi halaman memiliki jsapi.js, itu berarti challenge.js dirakit dari kode jsapi.js, maka jsapi.js dapat langsung dilewatkan ke capsolver sebagai nilai awsApiJs. | 
| Situasi 4 | websiteURLawsProblemUrl | Dalam kasus khusus, ketika halaman tidak dapat menemukan key, iv, context, challenge.js, dan hanya memiliki captcha.js, Anda perlu melewatkan URL endpoint problem ke capsolver. awsProblemUrl harus mengandung nilai seperti problemdannum_solutions_required. Nilai-nilai ini dapat ditemukan dengan mencarivisualSolutionsRequireddi html halaman.Contoh lengkap awsProblemUrl: https://ait.2608283a.us-east-1.captcha.awswaf.com/ait/ait/ait/problem?kind=visual&domain=www.amazon.com&locale=en-us&problem=gridcaptcha-5-0.15-0&num_solutions_required=2 | 
| Situasi 5 | websiteURLawsApiKeyawsApiJsawsExistingToken | Ini biasanya terjadi dalam situasi yang membutuhkan verifikasi sekunder. Endpoint problemmengandungapi_key(yang nilainya biasanya konstan untuk setiap situs web) sebagaiawsApiKey. Halaman memilikijsapi.jssebagaiawsApiJs, danaws-waf-tokendari verifikasi sebelumnya diteruskan ke capsolver sebagaiawsExistingToken | 
Contoh Permintaan
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "AntiAwsWafTask", // AntiAwsWafTaskProxyLess
        "websiteURL": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest", // Required
        "awsKey": "AQIDAHjcYu/GjX+QlghicBg......shMIKvZswZemrVVqA==",  // Optional
        "awsIv": "CgAAFDIlckAAAAid",  // Optional
        "awsContext": "7DhQfG5CmoY90ZdxdHCi8WtJ3z......njNKULdcUUVEtxTk=",  // Optional
        "awsChallengeJS": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb......a6c832/challenge.js",  // Optional
        "awsApiJs": "https://9175c2fd4189.edge.captcha-sdk.awswaf.com/9175c2fd4189/jsapi.js",  // Optional
        "awsProblemUrl": "https://ait...awswaf.com/ait/ait/ait/problem?kind=visual&...&problem=gridcaptcha-5-0.1-0&num_solutions_required=2",  // Optional
        "awsApiKey": "Sps+L2gV...",  // Optional
        "awsExistingToken": "5na16dg6-216a-...",  // Optional
        "proxy": "http:ip:port:user:pass" // socks5:ip:port:user:pass
    }
}Setelah Anda mengirimkan tugas kepada kami, Anda akan menerima ‘taskId’ dalam respons jika berhasil. Harap baca errorCode: daftar lengkap error jika Anda tidak menerima ID tugas. Untuk informasi lebih lanjut, Anda juga dapat mengacu pada posting blog ini Cara menyelesaikan token captcha aws amazon
Contoh Respons
{
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}Mendapatkan Hasil
Setelah Anda memiliki taskId, Anda perlu mengirimkan taskId untuk mengambil solusinya. Struktur respons dijelaskan dalam getTaskResult.
Tergantung pada beban sistem, Anda akan mendapatkan hasilnya dalam interval 5s hingga 30s
Contoh Permintaan
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}Contoh Respons
{
  "errorId": 0,
  "taskId": "646825ef-9547-4a29-9a05-50a6265f9d8a",
  "status": "ready",
  "solution": {
    "cookie": "223d1f60-0e9f-4238-ac0a-e766b15a778e:EQoAf0APpGIKAAAA:AJam3OWpff1VgKIJxH4lGMMHxPVQ0q0R3CNtgcMbR4VvnIBSpgt1Otbax4kuqrgkEp0nFKanO5oPtwt9+Butf7lt0JNe4rZQwZ5IrEnkXvyeZQPaCFshHOISAFLTX7AWHldEXFlZEg7DjIc="
  }
}Gunakan Permintaan SDK
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "AntiAwsWafTask",
    "websiteURL": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest",
    "proxy": "ip:port:user:pass"
})Kode Contoh
# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # TODO: kunci API capsolver Anda
site_url = "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest"  # TODO: URL halaman situs Anda
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'AntiAwsWafTaskProxyLess',
            "websiteURL": site_url
        }
    }
    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)  # penundaan
        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
 
 
token = capsolver()
print(token)