Guía
Tarea (Token)
AWS WAF

AwsWafCaptcha: resolviendo AWS WAF

TIP

Crea la tarea con el método createTask y obtén el resultado con el método getTaskResult.

Los tipos de tarea que admitimos son:

  • AntiAwsWafTask: este tipo de tarea requiere tus propios proxies.
  • AntiAwsWafTaskProxyLess: este tipo de tarea no requiere tus propios proxies.

Crear una tarea

Crea una tarea de reconocimiento con el método createTask.

Estructura del objeto de tarea

PropiedadesTipoRequeridoDescripción
typeStringRequiredAntiAwsWafTask
AntiAwsWafTaskProxyLess
proxyStringOptionalUso de proxies
websiteURLStringRequiredDevuelve la URL de la página con información relacionada con el captcha
awsKeyStringOptionalEl valor clave devuelto por la página captcha
awsIvStringOptionalEl valor iv devuelto por la página captcha
awsContextStringOptionalEl valor context devuelto por la página captcha
awsChallengeJSStringOptionalEl enlace challenge.js devuelto por la página captcha
awsProblemUrlStringOptionalURL de interfaz problema que contiene palabras clave como problema, num_solutions_required
WARNING

Si el token obtenido no está disponible, puede deberse a la dirección IP. Intenta utilizar el modo AntiAwsWafTask para proporcionar tus propios proxies.

WARNING

Si no sabe qué parámetros pasar a capsolver, consulte las siguientes cuatro situaciones diferentes para pasar diferentes parámetros. Si ninguno de ellos satisface sus necesidades, póngase en contacto con nuestro servicio de atención al cliente.

CasoPasando parámetrosPrerrequisitos
Caso 1websiteURLEl código de respuesta de la página captcha de AWS puede ser 405 y los siguientes parámetros se pueden encontrar en el HTML:
window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."}
Caso 2websiteURL
awsKey
awsIv
awsContext
awsChallengeJS
Bajo la condición previa del caso 1, si capsolver devuelve un mensaje de error:Captcha render unexpect status code XXX, please pass in the awsKey, awsIv, awsContext and awsChallengeJs parameters, Significa que el servidor no activó el captcha. Analice manualmente los parámetros key, iv y context y páselos a capsolver.
Caso 3websiteURL
awsChallengeJS
Cuando la página no puede encontrar key, iv, context, pero tiene challenge.js, pase challenge.js a capsolver como el valor de awsChallengeJS.
Caso 4websiteURL
awsProblemUrl
Versión especial, cuando la página no puede encontrar key, iv, context, challenge.js, y solo tiene captcha.js, debe pasar la URL de la interfaz del problema a capsolver, awsProblemUrl debe contener valores como problem y num_solutions_required, que se pueden encontrar buscando visualSolutionsRequired en la página html.

Ejemplo completo de 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

Ejemplo de solicitud

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "AntiAwsWafTask", // Required
        "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
        "awsProblemUrl": "https://ait...awswaf.com/ait/ait/ait/problem?kind=visual&...&problem=gridcaptcha-5-0.1-0&num_solutions_required=2",  // Optional
        "proxy": "http:ip:port:user:pass" // socks5:ip:port:user:pass
    }
}

Después de enviar la tarea, deberías recibir en la respuesta un ‘ID de tarea’ si la operación es exitosa. Por favor, consulta errorCode: lista completa de errores si no recibiste el ID de tarea.

Ejemplo de respuesta

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

Obtener resultados

Una vez que tengas el ID de tarea, debes enviarlo para obtener la solución. La estructura de la respuesta se explica en getTaskResult.

Dependiendo de la carga del sistema, obtendrás los resultados en un intervalo de 5 segundos a 30 segundos.

Ejemplo de solicitud

POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Ejemplo de respuesta

{
  "errorId": 0,
  "taskId": "646825ef-9547-4a29-9a05-50a6265f9d8a",
  "status": "ready",
  "solution": {
    "cookie": "223d1f60-0e9f-4238-ac0a-e766b15a778e:EQoAf0APpGIKAAAA:AJam3OWpff1VgKIJxH4lGMMHxPVQ0q0R3CNtgcMbR4VvnIBSpgt1Otbax4kuqrgkEp0nFKanO5oPtwt9+Butf7lt0JNe4rZQwZ5IrEnkXvyeZQPaCFshHOISAFLTX7AWHldEXFlZEg7DjIc="
  }
}

Uso de la solicitud del 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"
})