Usa el agente de usuario y las pistas de cliente devueltos

Por solvethree3 min de lectura

Usa la identidad de navegador devuelta en la solicitud que envía la solución al sitio web de destino. Establece ambas cabeceras a partir de la solución y envía esa solicitud a través del proxy que funcionó durante la resolución.

En esta página

Sustituye las cabeceras de navegador existentes

Cabeceras de la solicitud saliente al destino
Cabeceras de la solicitud saliente al destino
Cabecera HTTPValor de la solución lista
User-Agentsolution.userAgent
sec-ch-uasolution.secChUa

No conserves un agente de usuario aleatorio de tu scraper o de una sesión HTTP existente. Eso sustituye la identidad de navegador devuelta con la solución por otra sin relación. Actualizar solo sec-ch-ua hace que las dos cabeceras describan navegadores distintos.

Sustituye los valores antiguos en lugar de añadir cabeceras duplicadas. Revisa los valores predeterminados de la sesión o el middleware de construcción de solicitudes que podría sobrescribirlos antes del envío.

Usa el proxy que funcionó

Parte de un resultado ready; pending y solving no contienen una solución utilizable. El método solve del SDK espera un resultado listo o lanza un error.

Para una tarea enviada con un solo proxy, reutiliza ese proxy en la solicitud al destino. Si proporcionaste proxyCandidates, selecciona el proxy que funcionó con successful_proxy(original_task, ready_result) de Python o successfulProxy(originalTask, readyResult) de JavaScript. No uses sin más el primer candidato.

Los ejemplos siguientes leen el proxy de salida del campo proxy de request. Para una tarea basada en candidatos, coloca ahí el valor seleccionado por la función auxiliar antes de enviar la solicitud. Consulta selección de proxies candidatos para configurar este caso.

Envía la solicitud al destino en Python o Node.js

Estos ejemplos envían un token de reCAPTCHA v3 Enterprise. En Python, solution es el diccionario de solución del resultado listo. En Node.js, result es la tarea lista. Ambos ejemplos establecen explícitamente las cabeceras devueltas y enrutan la solicitud a través del proxy seleccionado.

Python requests · aplicar una solución lista
# Continue after client.solve(). Install requests separately: pip install requests.
import requests

# This example endpoint accepts the standard reCAPTCHA form field.
# Use your application's real URL, form fields, CSRF token and session.
response = requests.post(
    "https://accounts.example.com/login",
    data={"g-recaptcha-response": solution["token"]},
    headers={
        "User-Agent": solution["userAgent"],
        "sec-ch-ua": solution["secChUa"],
    },
    proxies={"http": request["proxy"], "https": request["proxy"]},
    timeout=30,
    allow_redirects=False,
)
# Inspect the application's response to determine whether it accepted the request.
print("Application HTTP status:", response.status_code)

Sustituye la URL de inicio de sesión del ejemplo por la URL de destino prevista y usa los campos de formulario, el token CSRF y la sesión reales de esa aplicación. Los ejemplos suponen que la aplicación acepta el token en g-recaptcha-response; las cabeceras de navegador devueltas van en las cabeceras HTTP, no en el cuerpo del formulario.

Si el destino rechaza la solicitud, inspecciona lo que realmente salió de tu cliente HTTP: el valor del token, ambas cabeceras de navegador, el proxy y la URL de destino. Una tarea ready significa que se generó una solución, no que el destino aceptara tu envío. El estado HTTP de la aplicación que se imprime es un punto de partida; comprueba la respuesta de la aplicación para conocer el resultado real de éxito o fallo.

Ejecuta tu primera tarea.

Empieza con $5 de crédito en tu espacio de trabajo.

Crear un espacio de trabajo
Usa el agente de usuario y las pistas de cliente devueltos · solvethree