Den Proxy verwenden, der die Aufgabe tatsächlich gelöst hat
Wenn Sie proxyCandidates senden, ermitteln Sie mit solution.egressAttempts den Proxy, der die Aufgabe gelöst hat. Der Wert ist ein bei eins beginnender Index in der ursprünglichen Kandidatenliste. Verwenden Sie diesen Proxy, wenn Sie die Lösung an das Ziel übermitteln – keinen anderen Proxy aus der Liste.
Auf dieser Seite
Ursprüngliche Kandidatenliste beibehalten
Geben Sie genau eines der Felder proxy oder proxyCandidates an. Eine Kandidatenliste akzeptiert höchstens zwölf unterschiedliche HTTP- oder HTTPS-Proxy-URLs ohne Pfad, Abfrage oder Fragment. Behalten Sie die ursprüngliche Anfrage und die Reihenfolge der Kandidaten bei, bis Sie den erfolgreichen Proxy ausgewählt haben; nachträgliches Sortieren oder Filtern der Liste verändert, worauf der Index verweist.
Mit Kandidaten kann solvethree alternative Ausgangsverbindungen ausprobieren; sie garantieren nicht, dass ein Proxy oder Ziel funktioniert. Sitzungsaufgaben erfordern einen einzelnen proxy, keine Kandidatenliste.
Index vor der Proxy-Auswahl validieren
Bei reCAPTCHA, Kasada und TMPT gibt solution.egressAttempts den erfolgreichen Kandidaten an. Akzeptieren Sie den Wert nur, wenn er eine ganze Zahl von 1 bis zur Länge des ursprünglichen Arrays ist. Ziehen Sie beim Indizieren eines JavaScript-Arrays oder einer Python-Liste eins ab.
| Ursprüngliche Position | Kandidat | Ausgewählt |
|---|---|---|
| 1 | PROXY_A | Nein |
| 2 | PROXY_B | Ja |
| 3 | PROXY_C | Nein |
Hier ist der zweite Proxy, PROXY_B, am Array-Offset 1 erfolgreich. Wenn der Index fehlt, eine Bruchzahl, null oder außerhalb der Liste ist, brechen Sie ab. Verwenden Sie nicht ersatzweise den ersten Proxy und leiten Sie den erfolgreichen Proxy nicht aus der Listenreihenfolge ab.
SDK-Hilfsfunktion verwenden und den ausgewählten Proxy erneut nutzen
Übergeben Sie die ursprüngliche Aufgabe und das fertige Ergebnis an successfulProxy in JavaScript oder successful_proxy in Python. Die Beispiele rufen solve auf, um die Aufgabe zu erstellen und ihren Status abzufragen, bis sie fertig ist oder ein Fehler ausgelöst wird. Anschließend brechen sie ab, falls die Hilfsfunktion keinen Proxy zurückgibt.
Setzen Sie SOLVETHREE_API_KEY und die drei Proxy-Umgebungsvariablen auf Ihrem Server. Jede Proxy-Variable muss eine andere gültige Proxy-URL enthalten. Ersetzen Sie die Beispielwebsite und -aktion durch Ihr vorgesehenes Ziel und Ihre Aktion. Die Beispiele erfordern Node.js 22+ oder Python 3.10+.
import { Solvethree, successfulProxy } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const request = {
site: 'accounts.example.com', action: 'login',
proxyCandidates: [process.env.PROXY_A, process.env.PROXY_B, process.env.PROXY_C],
};
const result = await client.solve(request);
const proxy = successfulProxy(request, result);
if (!proxy) throw new Error('No valid winning proxy index; do not guess');
// For egressAttempts: 2, proxy is request.proxyCandidates[1].
// Submit result.solution through this proxy with its returned browser identity.import os
from solvethree import Solvethree, successful_proxy
client = Solvethree(os.environ["SOLVETHREE_API_KEY"])
request = {
"site": "accounts.example.com", "action": "login",
"proxyCandidates": [os.environ["PROXY_A"], os.environ["PROXY_B"], os.environ["PROXY_C"]],
}
result = client.solve(request)
proxy = successful_proxy(request, result)
if proxy is None:
raise RuntimeError("No valid winning proxy index; do not guess")
# With egressAttempts == 2, proxy is request["proxyCandidates"][1].
# Use this proxy and the returned identity for the target request.Bewahren Sie den ausgewählten Proxy zusammen mit den zurückgegebenen Werten userAgent, secChUa und dem vorgesehenen Ziel auf und verwenden Sie diese Identität für die Zielanfrage. Das SDK wählt den Proxy aus; es konfiguriert weder Ihren Browser noch übermittelt es die Lösung für Sie. Eine fertige Lösung ist kein Beleg dafür, dass das Ziel sie akzeptiert hat.
Quellen und API-Referenz
Führe deinen ersten Task aus.
Starte mit $5 Workspace-Guthaben.