AwsWafCaptcha: menyelesaikan AWS WAF
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
Properti | Tipe | Wajib | Deskripsi |
---|---|---|---|
type | String | Wajib | AntiAwsWafTask AntiAwsWafTaskProxyLess |
proxy | String | Opsional | Pelajari Menggunakan proksi |
websiteURL | String | Wajib | URL halaman yang mengembalikan informasi terkait captcha |
awsKey | String | Opsional | Nilai key yang dikembalikan oleh halaman captcha |
awsIv | String | Opsional | Nilai iv yang dikembalikan oleh halaman captcha |
awsContext | String | Opsional | Nilai context yang dikembalikan oleh halaman captcha |
awsChallengeJS | String | Opsional | Tautan challenge.js yang dikembalikan oleh halaman captcha |
awsApiJs | String | Opsional | Tautan jsapi.js yang dikembalikan oleh halaman captcha |
awsProblemUrl | String | Opsional | URL endpoint problem yang mengandung kata kunci seperti problem , num_solutions_required , dll. |
awsApiKey | String | Opsional | Nilai api_key dari endpoint problem |
awsExistingToken | String | Opsional | aws-waf-token yang 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 | websiteURL 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-1 | websiteURL awsChallengeJS | Ketika halaman tidak dapat menemukan key, iv, context, tetapi memiliki challenge.js, teruskan challenge.js ke capsolver sebagai nilai awsChallengeJS. |
Situasi 3-2 | websiteURL 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 4 | websiteURL 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 5 | websiteURL 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)