Den zurückgegebenen User-Agent und die Client Hints verwenden
Verwenden Sie die zurückgegebene Browseridentität für die Anfrage, die die Lösung an die Zielwebsite übermittelt. Setzen Sie beide Header aus der Lösung und senden Sie diese Anfrage über den Proxy, der beim Lösen erfolgreich war.
Auf dieser Seite
Vorhandene Browser-Header ersetzen
| HTTP-Header | Wert aus der fertigen Lösung |
|---|---|
| User-Agent | solution.userAgent |
| sec-ch-ua | solution.secChUa |
Behalten Sie keinen beliebigen User-Agent aus Ihrem Scraper oder einer bestehenden HTTP-Sitzung bei. Dadurch wird die mit der Lösung zurückgegebene Browseridentität durch eine nicht zugehörige ersetzt. Wenn Sie nur sec-ch-ua aktualisieren, beschreiben die beiden Header unterschiedliche Browser.
Ersetzen Sie alte Werte, statt doppelte Header anzuhängen. Prüfen Sie Sitzungsvorgaben oder Middleware zur Anfrageerstellung, die diese Werte vor dem Senden der Anfrage überschreiben könnten.
Den erfolgreichen Proxy verwenden
Beginnen Sie mit einem ready-Ergebnis; pending und solving enthalten keine verwendbare Lösung. Die SDK-Methode solve wartet auf ein fertiges Ergebnis oder löst einen Fehler aus.
Bei einer mit einem einzelnen proxy übermittelten Aufgabe verwenden Sie diesen Proxy auch für die Zielanfrage. Wenn Sie proxyCandidates angegeben haben, wählen Sie den erfolgreichen Proxy mit successful_proxy(original_task, ready_result) in Python oder successfulProxy(originalTask, readyResult) in JavaScript aus. Verwenden Sie nicht einfach den ersten Kandidaten.
Die folgenden Beispiele lesen den ausgehenden Proxy aus dem Feld proxy von request. Tragen Sie bei einer kandidatenbasierten Aufgabe dort den von der Hilfsfunktion ausgewählten Wert ein, bevor Sie die Anfrage senden. Die Einrichtung wird unter Auswahl von Proxy-Kandidaten beschrieben.
Zielanfrage in Python oder Node.js senden
Diese Beispiele übermitteln einen reCAPTCHA v3 Enterprise-Token. In Python ist solution das Lösungs-Dictionary des fertigen Ergebnisses. In Node.js ist result die fertige Aufgabe. Beide Beispiele setzen die zurückgegebenen Header explizit und leiten die Anfrage über den ausgewählten Proxy.
# 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)// Continue after client.solve(). Install undici separately: npm install undici@7.
import { fetch, ProxyAgent } from 'undici';
const dispatcher = new ProxyAgent(request.proxy);
try {
// Replace the URL and form fields with your application's contract.
const response = await fetch('https://accounts.example.com/login', {
method: 'POST',
dispatcher,
redirect: 'manual',
headers: {
'user-agent': result.solution.userAgent,
'sec-ch-ua': result.solution.secChUa,
},
body: new URLSearchParams({
'g-recaptcha-response': result.solution.token,
}),
signal: AbortSignal.timeout(30_000),
});
console.log('Application HTTP status:', response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}Ersetzen Sie die beispielhafte Anmelde-URL durch die vorgesehene Ziel-URL und verwenden Sie die tatsächlichen Formularfelder, den CSRF-Token und die Sitzung dieser Anwendung. Die Beispiele setzen voraus, dass die Anwendung den Token in g-recaptcha-response akzeptiert; die zurückgegebenen Browser-Header gehören in die HTTP-Header, nicht in den Formularkörper.
Wenn das Ziel die Anfrage ablehnt, prüfen Sie, was Ihr HTTP-Client tatsächlich gesendet hat: den Tokenwert, beide Browser-Header, den Proxy und die Ziel-URL. Eine Aufgabe mit dem Status ready bedeutet, dass eine Lösung erzeugt wurde, nicht dass das Ziel Ihre Übermittlung akzeptiert hat. Der ausgegebene HTTP-Status der Anwendung ist ein Ausgangspunkt; prüfen Sie die Antwort der Anwendung auf das tatsächliche Erfolgs- oder Fehlerergebnis.
Quellen und API-Referenz
Führe deinen ersten Task aus.
Starte mit $5 Workspace-Guthaben.