Panduan
Tugas (Token)
AWS WAF

AwsWafCaptcha: menyelesaikan AWS WAF

TIP

Buat tugas dengan metode createTask dan dapatkan hasilnya dengan metode getTaskResult.

Tipe tugas types yang kami dukung:

  • AntiAwsWafTask tipe tugas ini membutuhkan proksi Anda sendiri.
  • AntiAwsWafTaskProxyLess tipe tugas ini tidak membutuhkan proksi Anda sendiri.

Membuat Tugas

Buat tugas pengenalan dengan metode createTask.

Struktur Objek Tugas

PropertiTipeWajibDeskripsi
typeStringWajibAntiAwsWafTask
AntiAwsWafTaskProxyLess
proxyStringOpsionalPelajari Menggunakan proksi
websiteURLStringWajibURL halaman yang mengembalikan informasi terkait captcha
awsKeyStringOpsionalNilai key yang dikembalikan oleh halaman captcha
awsIvStringOpsionalNilai iv yang dikembalikan oleh halaman captcha
awsContextStringOpsionalNilai context yang dikembalikan oleh halaman captcha
awsChallengeJSStringOpsionalTautan challenge.js yang dikembalikan oleh halaman captcha
awsApiJsStringOpsionalTautan jsapi.js yang dikembalikan oleh halaman captcha
awsProblemUrlStringOpsionalURL endpoint problem yang mengandung kata kunci seperti problem, num_solutions_required, dll.
awsApiKeyStringOpsionalNilai api_key dari endpoint problem
awsExistingTokenStringOpsionalaws-waf-token yang digunakan untuk verifikasi terakhir
Parameter apa yang harus saya gunakan?

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.

SituasiParameter yang DilewatkanPrasyarat
Situasi 1websiteURLKode respons halaman captcha aws mungkin 405, dan parameter berikut dapat ditemukan di html:
window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."}
Situasi 2websiteURL
awsKey
awsIv
awsContext
awsChallengeJS
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-1websiteURL
awsChallengeJS
Ketika halaman tidak dapat menemukan key, iv, context, tetapi memiliki challenge.js, teruskan challenge.js ke capsolver sebagai nilai awsChallengeJS.
Situasi 3-2websiteURL
awsApiJs
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 4websiteURL
awsProblemUrl
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 problem dan num_solutions_required. Nilai-nilai ini dapat ditemukan dengan mencari visualSolutionsRequired di 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 5websiteURL
awsApiKey
awsApiJs
awsExistingToken
Ini biasanya terjadi dalam situasi yang membutuhkan verifikasi sekunder. Endpoint problem mengandung api_key (yang nilainya biasanya konstan untuk setiap situs web) sebagai awsApiKey. Halaman memiliki jsapi.js sebagai awsApiJs, dan aws-waf-token dari verifikasi sebelumnya diteruskan ke capsolver sebagai awsExistingToken

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)