Captchas lösen mit
Browser Use-Agenten
Ein Agent, der auf eine Challenge trifft, hat nichts in seinem Toolset, das sie lösen kann – also bleibt er hängen oder halluziniert sich daran vorbei. Geben Sie ihm einen Solver als Tool, und die Blockade wird zu einem weiteren Aufruf.
import time
import requests
CAPTCHANO_KEY = "cn-YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {CAPTCHANO_KEY}"}
def solve(task: dict) -> dict:
"""Block until solved; returns e.g. {"token": "...", "userAgent": "..."}."""
r = requests.post(
"https://api.captchano.com/v1/solve",
params={"wait": 60},
json=task,
headers=HEADERS,
timeout=75,
)
data = r.json()
# A solve can outlast the 60 s wait: poll the task until it finishes.
while data.get("status") in ("queued", "solving"):
time.sleep(5)
data = requests.get(
f"https://api.captchano.com/v1/task/{data['id']}",
headers=HEADERS,
timeout=30,
).json()
if data.get("status") != "ready":
raise RuntimeError(data.get("error") or data)
return data["solution"]
from browser_use import Agent, Tools, ActionResult
tools = Tools()
@tools.action("Solve a captcha that is blocking the current page")
def solve_captcha(kind: str, sitekey: str, url: str) -> ActionResult:
solution = solve({"type": kind, "sitekey": sitekey, "url": url})
return ActionResult(extracted_content=solution["token"])
agent = Agent(task="...", llm=llm, tools=tools)Warum gerade Agenten das brauchen
Ein Scraper, der auf eine Challenge trifft, scheitert laut, und Sie beheben das Problem. Ein Agent scheitert leise: Er denkt über die blockierte Seite nach, erfindet einen plausiblen nächsten Schritt und meldet Fortschritt, den es nie gab. Der Fehler ist schlimmer, weil er unbemerkt bleibt. Ein typisiertes Solver-Tool macht aus einer unklaren Sackgasse ein deterministisches Ergebnis, auf das der Agent reagieren kann.
Was das Tool zurückgibt
- Ein Token oder Cookie – je nach Challenge-Typ. Sitzungsbasiert bewertende Systeme liefern ein Cookie sowie die Header, mit denen es erhalten wurde.
- Den verwendeten User-Agent, damit der Agent ihn beim Absenden übernehmen kann.
- Die Kosten der Lösung, damit ein Agent mit Budget sie verbuchen kann, statt blind auszugeben.
Die Schleife begrenzt halten
Geben Sie dem Agenten ein Lösungsbudget pro Lauf. Jede Response meldet ihre Kosten, sodass ein Supervisor die Schleife abbrechen kann, wenn die Ausgaben einen Schwellenwert überschreiten – statt es erst auf der Rechnung zu bemerken. Bei $0.00598 pro Lösung kostet ein typischer Agent-Lauf wenige Cent oder weniger, aber eine unbegrenzte Retry-Schleife bleibt eine unbegrenzte Retry-Schleife.
Den Tool-Aufruf blockierend halten
Die Beispiele rufen ?wait=60 auf, sodass das Tool in einem einzigen Schritt ein fertiges Token zurückgibt. Für Agenten ist das wichtiger als für Skripte: Ein Tool, das „wird noch gelöst“ zurückgibt, zwingt das Modell, über Polling nachzudenken – und das kann es schlecht. Brauchen Sie eine höhere Obergrenze, erhöhen Sie wait auf bis zu 120 Sekunden. Die Request-Formate für jeden Challenge-Typ finden Sie in der API-Referenz.
So fügt sich die Lösung in Browser Use ein
Mit Browser Use können Sie eigene Actions registrieren. Eine Solve-Action liest den Sitekey aus der aktuellen Seite, holt ein Token und injiziert es, sodass der Agent im selben Browser weitermachen kann.
- 01Action registrieren
Fügen Sie den Tools des Agenten eine Solve-Action mit klarer Beschreibung hinzu.
- 02Aktuelle Seite auslesen
Die Action liest Sitekey und URL aus der bereits vorhandenen Browsersitzung.
- 03Lösen und injizieren
Rufen Sie die API auf und injizieren Sie das Token dann in dieselbe Seite.
- 04Rückmeldung geben
Geben Sie ein kurzes Ergebnis zurück, damit der Agent weiß, dass er weitermachen kann.
So kommt das Token in die Seite
Die Action führt JavaScript in der Seite des Agenten aus, um das Feld zu füllen und den Callback auszulösen.
Woran Integrationen meistens scheitern
Senden Sie den Proxy, den der Browser des Agenten nutzt, damit Token und Seite dieselbe IP haben.
Weisen Sie den Agenten in der Action-Beschreibung an, das Widget nicht selbst anzuklicken; das übernimmt die Action.
FAQ zu Captchas mit Browser Use
Löst Browser Use Captchas selbst?
Es kann eine Checkbox anklicken, aber keine Bild-Challenges beantworten, und automatisierten Browsern werden diese oft gezeigt. Eine eigene Solve-Action macht das Ergebnis deterministisch.
Funktioniert es mit Browser Use Cloud?
Die Action braucht nur ausgehendes HTTPS und die Möglichkeit, JavaScript in der Seite auszuführen – sie funktioniert also überall, wo Ihr Agent läuft.
Und Turnstile?
Dieselbe Action, anderer Typ. Lesen Sie den Turnstile-Sitekey aus und senden Sie type turnstile.
Wie verhindere ich, dass der Agent in einer Schleife hängt?
Zählen Sie die Lösungen pro Aufgabe und stoppen Sie den Agenten ab einem Limit. Jedes Ergebnis enthält seine Kosten, falls Sie lieber ein Ausgabenbudget nutzen.
Hilfreiche Anleitungen
Bereit zum Loslegen?
Starten Sie mit einer kostenlosen 3-tägigen Testphase und zahlen Sie danach pro erfolgreicher Lösung, wenn Ihr Traffic wächst. Für die Testphase ist keine Karte nötig.