Utiliser le user agent et les client hints renvoyés

Par solvethree3 min de lecture

Utilisez l’identité de navigateur renvoyée pour la requête qui soumet la solution au site cible. Définissez les deux en-têtes à partir de la solution et envoyez cette requête via le proxy ayant réussi lors de la résolution.

Sur cette page

Remplacez vos en-têtes de navigateur existants

En-têtes de la requête sortante à la cible
En-têtes de la requête sortante à la cible
En-tête HTTPValeur issue de la solution prête
User-Agentsolution.userAgent
sec-ch-uasolution.secChUa

Ne conservez pas un user agent aléatoire provenant de votre scraper ou d’une session HTTP existante. Cela remplace l’identité de navigateur renvoyée avec la solution par une identité sans rapport. Si vous mettez uniquement à jour sec-ch-ua, les deux en-têtes décriront des navigateurs différents.

Remplacez les anciennes valeurs plutôt que d’ajouter des en-têtes en double. Vérifiez les valeurs par défaut de la session ou les middlewares de construction des requêtes susceptibles de les écraser avant l’envoi.

Utilisez le proxy ayant réussi

Partez d’un résultat ready ; pending et solving ne contiennent pas de solution utilisable. La méthode solve du SDK attend un résultat prêt ou lève une erreur.

Pour une tâche soumise avec un seul proxy, réutilisez ce proxy pour la requête à la cible. Si vous avez fourni proxyCandidates, sélectionnez le proxy ayant réussi avec successful_proxy(original_task, ready_result) en Python ou successfulProxy(originalTask, readyResult) en JavaScript. Ne vous contentez pas d’utiliser le premier candidat.

Les exemples ci-dessous lisent le proxy sortant dans le champ proxy de request. Pour une tâche utilisant des candidats, placez-y la valeur sélectionnée par la fonction utilitaire avant d’envoyer la requête. Consultez la sélection d’un proxy candidat pour cette configuration.

Envoyez la requête à la cible en Python ou Node.js

Ces exemples soumettent un jeton reCAPTCHA v3 Enterprise. En Python, solution est le dictionnaire de solution du résultat prêt. En Node.js, result est la tâche prête. Les deux exemples définissent explicitement les en-têtes renvoyés et acheminent la requête via le proxy sélectionné.

Python requests · appliquer une solution prête
# 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)

Remplacez l’URL de connexion de l’exemple par l’URL cible prévue et utilisez les véritables champs de formulaire, jeton CSRF et session de cette application. Les exemples supposent que l’application accepte le jeton dans g-recaptcha-response ; les en-têtes de navigateur renvoyés doivent figurer dans les en-têtes HTTP, et non dans le corps du formulaire.

Si la cible rejette la requête, inspectez ce qui a réellement été envoyé par votre client HTTP : la valeur du jeton, les deux en-têtes de navigateur, le proxy et l’URL de destination. Une tâche ready signifie qu’une solution a été générée, et non que la cible a accepté votre soumission. Le statut HTTP de l’application affiché est un point de départ ; vérifiez la réponse de l’application pour connaître son résultat réel, succès ou échec.

Lancez votre première tâche.

Démarrez avec $5 de crédit dans votre espace de travail.

Créer un espace de travail
Utiliser le user agent et les client hints renvoyés · solvethree