Scarnox · Blog

Proxy oder proxyless beim Captcha-Lösen - welcher Task-Typ passt?

Scarnox bietet PopularCaptcha in zwei Varianten an: proxyless, bei dem Scarnox das Captcha über das eigene Netzwerk löst, und eine Proxy-Variante, bei der du den Proxy angibst, den dein Bot verwendet. Beide liefern ein Token im selben Antwortformat, und beide sind kostenlos, wenn ein Versuch fehlschlägt. Der einzige Unterschied in der Anfrage ist der Proxy.

Proxyless ist für die meisten Seiten der richtige Ausgangspunkt. Sende einen eigenen Proxy nur dann, wenn die Seite das Token an eine IP-Adresse bindet.

Die beiden Task-Typen

Task-TypWas du sendest
PopularCaptchaTaskProxylessSitekey und Seiten-URL
PopularCaptchaTask (Proxy-Variante)Sitekey, Seiten-URL und deinen proxy

Beide sind PopularCaptcha-Tasks. Der Rest der Anfrage, die Antwort und die Behandlung des Tokens sind gleich.

Mit proxyless starten

Proxyless-Lösungen laufen über das eigene Netzwerk von Scarnox. Die Integration ist die einfachste, die du schreiben kannst, und für die meisten Seiten funktioniert das Token unabhängig davon, von welcher IP es später abgeschickt wird. Wenn du nicht sicher bist, welche Variante du brauchst, beginne hier:

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "10000000-ffff-ffff-ffff-000000000001",
  "site_url": "https://example.com/signup"
}

Einen Proxy senden, wenn das Token an eine IP gebunden ist

Manche Seiten prüfen, dass die IP, die das Captcha gelöst hat, dieselbe IP ist, die das Formular absendet. Das Symptom ist eindeutig: Tokens kommen ohne Fehler zurück, aber die Seite lehnt sie jedes Mal ab. Die Lösung ist, über denselben Proxy zu lösen, den dein Bot für den Rest der Sitzung verwendet:

{
  "captcha_type": "PopularCaptchaTask",
  "site_key": "10000000-ffff-ffff-ffff-000000000001",
  "site_url": "https://example.com/signup",
  "proxy": "http://user:pass@203.0.113.10:8080"
}

Das Proxy-Format ist http://user:pass@host:port. Verwende für Lösung und Absenden denselben Proxy und halte ihn für die ganze Sitzung stabil. Wechselst du den Proxy zwischen Lösung und Absenden, kehrt das IP-Missverhältnis zurück.

So entscheidest du

Arbeite diese Fragen in dieser Reihenfolge durch:

  1. Funktioniert das Token, wenn du es von einem anderen Rechner aus absendest? Wenn ja, nimm proxyless.
  2. Lehnt die Seite Tokens nur ab, wenn die absendende IP von der lösenden IP abweicht? Wenn ja, sende den Proxy.
  3. Nutzt die Seite ein Sitzungs-Cookie oder eine Gerätprüfung, die an eine IP gebunden ist? Wenn ja, sende den Proxy und behalte dieselbe IP für die ganze Sitzung bei.

Teste beide Varianten mit dem kostenlosen Testguthaben, bevor du dich festlegst. Erstelle ein Konto und starte mit kostenlosem Testguthaben, ohne Karte, und führe dann denselben Ablauf je einmal pro Typ aus.

Wenn dein Proxy nicht funktioniert

Ein fehlgeschlagener Versuch ist kostenlos. Wenn der Proxy tot ist oder vom Ziel blockiert wird, schlägt die Lösung fehl, und dafür wirst du nicht berechnet. Teste den Proxy selbst vor dem Lauf, prüfe sein Format und stelle sicher, dass das Ziel seinen Adressbereich nicht blockiert. Ein Proxy, der für einen Browser funktioniert, bei der Lösung aber scheitert, hat meist ein Formatproblem.

Proxy-Zugangsdaten aus Logs heraushalten

Eine Proxy-Adresse mit Passwort ist ein Geheimnis. Speichere sie in einer Umgebungsvariable oder einem Secret-Manager. Gib sie nicht in Logs aus, committe sie nicht und füge sie nicht in Fehlerberichte ein. Wenn du die Lösungsanfrage zum Debuggen loggst, entferne vorher das Feld proxy.

Einen Proxy für die Variante auswählen

Die Lösung funktioniert mit jedem Proxy, den du sendest, aber das Token ist nur nützlich, wenn dieselbe IP das Formular absendet. Verwende eine Residential- oder statische Adresse, die du für die ganze Sitzung kontrollierst, nicht einen Pool, der bei jeder Anfrage wechselt. Seiten, die Tokens an IPs binden, binden meist auch die Sitzung, daher bricht ein rotierender Pool den Ablauf doppelt.

Und die Geschwindigkeit?

Beide Varianten liefern ein Token aus einer blockierenden Anfrage, ohne Polling-Schleife. Das Timeout ist dasselbe: etwa 185 Sekunden. Wähle die Variante nach der IP-Frage, nicht nach Geschwindigkeit.

Sitzungen und Proxys in der Praxis

Verwende denselben Proxy von der ersten Anfrage einer Sitzung bis zur letzten. Ein typischer Ablauf lädt die Anmeldeseite, löst das Captcha und sendet das Formular ab. Wenn der Seitenaufruf über eine Adresse läuft und die Lösung über eine andere, kann eine IP-gebundene Seite das Token ablehnen, obwohl alles andere richtig aussieht.

Halte eine einzige Proxy-Einstellung in deinem Code und übergib sie jedem Schritt, der die Seite berührt. Wenn andere Teile des Jobs Proxys für Scraping rotieren, gib dem Captcha-Ablauf einen eigenen, stabilen Proxy. Beides zu vermischen ist einer der häufigsten Gründe, warum ein Token, das im Test funktioniert hat, in der Produktion scheitert.

Setze das Feld proxy nur bei der Variante, die einen Proxy verwendet. Einen Proxy mit dem proxyless-Task-Typ zu senden verbessert die Lösung nicht, und es erschwert es, beim Lesen der Logs zu erkennen, welchen Modus ein Lauf verwendet hat.

Die richtige Antwort aus den Logs ablesen

Wenn du nicht sicher bist, welchen Modus eine Seite braucht, führe beide auf derselben Seite aus und vergleiche. Protokolliere für jedes Token, ob es akzeptiert wurde, zusammen mit dem Task-Typ und ob ein Proxy gesendet wurde. Eine Seite, die proxyless-Tokens durchgehend akzeptiert, braucht die Proxy-Variante nicht. Eine Seite, die sie nur bei bestimmten Läufen ablehnt, deutet auf eine IP-Prüfung hin. Die Logs sollen entscheiden, nicht eine Vermutung.

Nächste Schritte

Starte mit kostenlosem Testguthaben, ohne Karte: Konto erstellen und teste beide Task-Typen auf einer Seite.