- Browser Use kombiniert strukturierten Zustand, Werkzeuge und optionale Ansicht zur Steuerung von Webseiten.
- Die aktuelle Installation verwendet Browser Use und lädt Chromium mit einem eigenen Installationsprogramm herunter.
- max_actions_per_step gruppiert Aktionen; max_steps begrenzt die gesamte Ausführungszeit.
- Anmeldeinformationen müssen durch Lesezeichen, zulässige Domänen und isolierte Profile geschützt werden.
Das Internet birgt eine riesige Menge an Informationen, doch deren strukturierte Erfassung gestaltet sich nach wie vor schwierig. Viele Websites bieten keine öffentliche API an, laden ihre Inhalte mit JavaScript oder verteilen Daten nicht auf Formulare, Menüs und mehrere Bildschirme. Es gibt zahlreiche Lösungsansätze für diese Probleme. Web-Scraping-ToolsBeautiful Soup eignet sich gut für relativ statische HTML-Dokumente, während Selenium und Playwright die Steuerung dynamischer Seiten mithilfe eines echten Browsers ermöglichen.
Browsernutzung Es führt einen anderen Ansatz ein: anstatt alle Aktionen im Voraus zu planen, ermöglicht es Ihnen, einem Ziel ein Ziel vorzugeben Agent für künstliche IntelligenzDer Agent beobachtet den Zustand der Seite, entscheidet, welches Werkzeug verwendet werden soll, und navigiert weiter, bis die Aufgabe abgeschlossen ist oder das festgelegte Limit erreicht ist.
Dies erleichtert zwar die Automatisierung verschiedener oder sich ändernder Seiten, macht aber keine Website zu einer zuverlässigen API und beseitigt auch nicht die Notwendigkeit, Ergebnisse zu validieren. Die Browsernutzung erweitert die Analysemöglichkeiten, führt aber auch zu Latenz, erhöhtem Modellverbrauch und gewissen Schwankungen zwischen den Durchläufen.
Was ist Browsernutzung und wie funktioniert sie?

Browser Use ist eine Open-Source-Python-Bibliothek, die zur Erstellung von Agenten dient, welche einen Browser steuern können. Es kann lokal ausgeführt werden., verwenden Sie einen Remote-Browser oder stellen Sie eine Verbindung zur Browser Use Cloud-verwalteten Infrastruktur her.
Der Entwickler stellt eine Aufgabe, ein Sprachmodell und gegebenenfalls eine benutzerdefinierte Browserkonfiguration bereit. Während der Ausführung… Der Agent empfängt einen verarbeiteten Status von der Seite und verwendet Tools zur Navigation.Elemente antippen, tippen, scrollen, Registerkarten wechseln, Dateien hochladen oder Inhalte extrahieren.
Es ist falsch zu behaupten, dass der Browser den Bildschirm immer wie ein Mensch analysiert. Das System kann mit der Struktur und den Elementen der Seite arbeiten. Die Ansicht ist optional und ermöglicht den Rückgriff auf Erfassungen wenn visuelle Informationen benötigt werden.
Der Parameter use_vision verwendet derzeit den Wert "auto" Standardmäßig verfügt der Agent in diesem Modus über das Aufnahmewerkzeug, nutzt aber die Bildverarbeitung nur bei Bedarf. Er kann auch wie folgt konfiguriert werden: True um es dauerhaft oder als False um es zu deaktivieren.
Diese Kombination ermöglicht die Lösung von Aufgaben, die mit starren Selektoren schwierig wären. Ändert sich beispielsweise die Position einer Schaltfläche oder verwendet eine Seite andere Klassennamen, kann der Agent den Zustand neu analysieren und einen anderen Weg finden. Allerdings kann er auch ein Element falsch interpretieren oder dem falschen Pfad folgen, sodass eine absolut sichere Anpassung nicht möglich ist.
Unterschiede zwischen Browsernutzung und traditionellem Web-Scraping
Traditionelles Web-Scraping nutzt bekannte Regeln, um Informationen zu finden und zu extrahieren. Ein Skript kann nach einem Element anhand einer CSS-Klasse, eines Attributs, eines XPath-Ausdrucks oder eines bestimmten Pfads innerhalb des Dokuments suchen.
Diese Vorgehensweise ist schnell und kostengünstig, sofern die Seiten eine stabile Struktur aufweisen. Außerdem. erleichtert die Durchführung von Audits weil das Ergebnis vom geschriebenen Code abhängt, nicht von der Interpretation eines Modells.
Die Verwendung eines Browsers ist besonders geeignet, wenn die Aufgabe Navigation, Entscheidungen oder Seiten mit unterschiedlichen Strukturen erfordert. Beispielsweise könnten Sie in mehreren Shops nach einem Produkt suchen, die Ergebnisse öffnen, Optionen aussortieren, die bestimmte Anforderungen nicht erfüllen, und einen abschließenden Vergleich anzeigen lassen.
| Besonderheit | Traditionelles Schaben | Browsernutzung |
|---|---|---|
| Kontrolle | Regeln und Selektoren, die durch Code definiert werden | Vom Agenten interpretierte Ziele |
| Geschwindigkeit | Im Allgemeinen hoch | Abhängig vom Modell und den Schritten |
| Kosten der Modelle | Sie benötigen keinen LLM-Abschluss. | Es erfordert in der Regel Schlussfolgerungen. |
| Anpassung | Die Regeln müssen aktualisiert werden. | Sie können die Seite neu interpretieren. |
| Ergebnisse | Deterministisch, wenn sich die Seite nicht ändert | Sie können je nach Hinrichtung variieren. |
| Empfohlene Verwendung | Große Volumina mit bekannter Struktur | Variable Aufgaben und komplexe Routen |
Die Browsernutzung ermöglicht den Aufbau einer Automatisierungsschicht auf einer Website ohne API, diese Schicht ist jedoch weiterhin von der Schnittstelle abhängig. Prüfen Sie daher vorab, ob eine offizielle API existiert und beachten Sie die Nutzungsbedingungen, Berechtigungen, Zugriffsbeschränkungen und geltenden Datenschutzgesetze.
Hauptmerkmale der Browsernutzung
Browser Use bietet verschiedene Komponenten zum Erstellen von Automatisierungen, die auf jedes Projekt zugeschnitten sind:
- Autonome Navigation: Der Agent kann Seiten öffnen und die nächsten Schritte festlegen.
- Interaktion mit Formularen: Geben Sie Text ein, wählen Sie Optionen aus, drücken Sie Schaltflächen und hängen Sie Dateien an.
- Tab-Verwaltung: Sie können mehrere Seiten öffnen, schließen und zwischen ihnen wechseln.
- Konfigurierbares Sehvermögen: Es interpretiert Screenshots, wenn die Seitenstruktur unzureichend ist.
- Strukturierte Ergebnisse: Die Antwort wird mithilfe von Pydantic-Modellen validiert.
- Sensible Daten: Geben Sie reelle Werte ein, ohne diese direkt in die Eingabeaufforderung einzugeben.
- Domänenbeschränkungen: beschränkt die Seiten, die der Browser besuchen kann.
- Profile und Sitzungen: Verwendet bereits vorhandene Cookies oder Authentifizierungszustände wieder.
- Benutzerdefinierte Werkzeuge: Fügen Sie Ihre eigenen Aktionen für spezifische Aufgaben hinzu.
- Ausführungsverlauf: Es ermöglicht Ihnen, URLs, Fehler, Aktionen und die Dauer zu überprüfen.
Die Open-Source-Bibliothek kann auf Ihrem eigenen Rechner ausgeführt werden, das zugrundeliegende Modell bleibt jedoch möglicherweise extern. Die lokale Nutzung im Browser bedeutet nicht automatisch, dass alle Informationen auf Ihrem Computer verbleiben: Sie sollten prüfen, welche Daten der LLM-Anbieter empfängt und ob Aufzeichnungen gesendet werden.
Browser Use Cloud erweitert Produktionsumgebungen um verwaltete Browser, persistente Profile, Proxys, Fingerprinting und weitere Funktionen. Diese Funktionen sind nicht zwingend Bestandteil einer Standardinstallation vor Ort und berechtigen nicht zur Umgehung von Beschränkungen, Zugriffskontrollen oder Nutzungsbedingungen.
So installieren Sie den Browser

Browser Use empfiehlt derzeit die Verwendung von Python 3.12 und uv Um eine isolierte Umgebung zu erstellen, können Sie unter Windows Folgendes ausführen:
pip install uv
uv venv --python 3.12
.venv\Scripts\activate
uv pip install browser-use
uvx browser-use install
Unter macOS oder Linux verläuft die Aktivierung der Umgebung anders:
pip install uv
uv venv --python 3.12
source .venv/bin/activate
uv pip install browser-use
uvx browser-use install
Der letzte Befehl lädt Chromium herunter und bereitet es für die Browsernutzung vor. Daher ist eine Installation nicht erforderlich. playwright und ausführen playwright install chromium separat, um dem aktuellen Grundbeispiel zu folgen.
Playwright kann zusätzlich installiert werden, wenn Sie innerhalb desselben Projekts benutzerdefinierte Tools erstellen möchten, die seine deterministischen APIs verwenden. Es ist jedoch keine allgemeine Voraussetzung für die Ausführung des ersten Agenten.
Wie konfiguriert man das Modell der künstlichen Intelligenz?
Browsernutzung Sie können mit verschiedenen Anbietern zusammenarbeiten.einschließlich ihres eigenen Modells, Google, OpenAI, Anthropic, Azure OpenAI, OpenRouter, Ollama und anderer kompatibler Dienste.
Speichern Sie die Schlüssel in einer Datei .env und vermeiden Sie es, sie direkt im Skript zu schreiben. Für die Verwendung von Gemini wird derzeit folgende Variable empfohlen:
GOOGLE_API_KEY=TU_CLAVE
Die alte Variable GEMINI_API_KEY Die aktuelle Integration ist veraltet. Die kostenlose Verfügbarkeit und die Einschränkungen von Google AI Studio können sich ändern. Prüfen Sie daher die aktuellen Nutzungsbedingungen, bevor Sie eine Automatisierung entwickeln, die darauf basiert.
So verwenden Sie das optimierte Browsernutzungsmodell:
BROWSER_USE_API_KEY=TU_CLAVE
Sie können außerdem Folgendes konfigurieren:
OPENAI_API_KEY=TU_CLAVE
ANTHROPIC_API_KEY=TU_CLAVE
OPENROUTER_API_KEY=TU_CLAVE
Laden Sie die Datei nicht hoch. .env Füge es zu Git hinzu. .gitignore und verwenden Sie einen Geheimnismanager, wenn Sie den Agenten in der Produktionsumgebung einsetzen.
Wie man den ersten Agenten mit Browser erstellt

Erstellen Sie eine Datei mit dem Namen agente.pyDieses Beispiel verwendet Gemini, zeigt den Browser an und beschränkt die Navigation auf die angegebene Domain:
import asyncio
from dotenv import load_dotenv
from browser_use import Agent, Browser, ChatGoogle
load_dotenv()
async def main():
browser = Browser(
headless=False,
window_size={"width": 1440, "height": 900},
allowed_domains=["news.ycombinator.com"],
)
agent = Agent(
task=(
"Abre Hacker News, localiza las cinco primeras noticias "
"y devuelve su título y enlace."
),
llm=ChatGoogle(model="gemini-2.5-flash"),
browser=browser,
use_vision="auto",
)
history = await agent.run(max_steps=15)
print(history.final_result())
print("Completado:", history.is_successful())
print("Pasos:", history.number_of_steps())
print("Duración:", history.total_duration_seconds())
if __name__ == "__main__":
asyncio.run(main())
Der korrekte Parameter ist taskEs wird nicht verwendet task_description in der aktuellen API. Nach Abschluss, run() gibt ein Objekt zurück AgentHistoryList mit der vollständigen Geschichte.
Von diesem Objekt aus können Sie folgende Abfragen durchführen:
history.final_result()für das Endergebnis erhalten.history.urls()für besuchte Seiten.history.errors()für Fehler überprüfen.history.action_names()für um zu erfahren, welche Maßnahmen ergriffen wurden.history.number_of_steps()für Zähle die Schritte.history.total_duration_seconds()für Messen Sie die Dauer.history.is_successful()für Prüfen Sie, ob der Vorgang erfolgreich abgeschlossen wurde..
Wie man Aktionen, Schritte und mögliche Schleifen steuert
max_actions_per_step Diese Einstellung legt fest, wie viele Aktionen das Modell in einem einzelnen Schritt vorschlagen kann. Der Standardwert ist vier. So kann der Agent beispielsweise mehrere Felder nacheinander ausfüllen, bevor er die Seite erneut analysiert.
Dieser Parameter bestimmt weder die Gesamtdauer noch verhindert er selbstständig Schleifen. Um die gesamte Ausführung zu begrenzen, müssen Sie Folgendes verwenden: max_steps beim Anrufen run():
history = await agent.run(max_steps=20)
Weitere relevante Anpassungen sind:
- max_failures: Es begrenzt die Wiederholungsversuche nach Fehlern in den einzelnen Schritten.
- llm_timeout: bestimmt, wie lange ein Modellaufruf dauern kann.
- Schritt-Timeout: Die Dauer jedes einzelnen Arbeitsschritts begrenzen.
- fallback_llm: Es ermöglicht Ihnen, auf ein anderes Modell umzuschalten, falls das Hauptmodell ausfällt.
- max_history_items: Steuert, wie viele Schritte der Agentenkontext beibehält.
- Blitzmodus: Es reduziert den Denkaufwand, um kompatible Aufgaben zu beschleunigen.
Erhöhen Sie die Grenzwerte nicht wahllos. Wenn der Agent eine Aktion wiederholt, überprüfen Sie die Anweisung, beschränken Sie die Bereiche und fügen Sie klare Kriterien hinzu, um festzulegen, wann er gestoppt werden soll.
Wie man strukturierte Daten extrahiert

Eine als Freitext verfasste Antwort lässt sich unter Umständen schwer in eine Datenbank integrieren. Mit der Browser-Nutzung können Sie mithilfe von Pydantic ein Ausgabeschema definieren, um die endgültige Struktur zu validieren.
import asyncio
from pydantic import BaseModel
from browser_use import Agent, ChatGoogle
class Noticia(BaseModel):
titulo: str
url: str
class Resultado(BaseModel):
noticias: list[Noticia]
async def main():
agent = Agent(
task="Obtén las cinco primeras noticias de Hacker News.",
llm=ChatGoogle(model="gemini-2.5-flash"),
output_model_schema=Resultado,
)
history = await agent.run(max_steps=15)
resultado = history.structured_output
if resultado:
for noticia in resultado.noticias:
print(noticia.titulo, noticia.url)
asyncio.run(main())
Das Schema hilft dabei, unvollständige Antworten oder solche mit unerwarteten Feldern zu erkennen. Dennoch sollten Sie URLs validieren, Duplikate entfernen und die Datengenauigkeit überprüfen, bevor Sie die Daten speichern oder für wichtige Entscheidungen verwenden.
Wie man Zugangsdaten und sensible Daten schützt
Der Parameter sensitive_data Es ermöglicht die Verknüpfung privater Werte mit Referenznamen. Das Modell empfängt das Lesezeichen, während Browser Use den tatsächlichen Wert direkt während der Formularverarbeitung einfügt.
from browser_use import Agent, Browser, ChatGoogle
credenciales = {
"https://*.ejemplo.com": {
"usuario_privado": "[email protected]",
"clave_privada": "contraseña-segura",
}
}
browser = Browser(
allowed_domains=["*.ejemplo.com"],
)
agent = Agent(
task=(
"Entra en https://app.ejemplo.com e inicia sesión con "
"usuario_privado y clave_privada."
),
llm=ChatGoogle(model="gemini-2.5-flash"),
browser=browser,
sensitive_data=credenciales,
use_vision=False,
)
Durch Deaktivieren der Sichtfunktion wird verhindert, dass Seitenaufnahmen an das Model gesendet werden. Dies ist besonders wichtig, wenn die Benutzeroberfläche personenbezogene Daten, Kontonummern, Verlaufsdaten oder Geschäftsinformationen anzeigen könnte.
Zur Erhöhung der Sicherheit:
- Beschränkt die Navigation durch
allowed_domains. - Ordnen Sie jedem Zertifikat eine entsprechende Referenz zu. nur bei den Domains, die es benötigen.
- Nutzen Sie Konten mit dem Mindestanzahl an Genehmigungen.
- Allgemeiner Zugriff nicht zulassen zu Systemdateien.
- Bitte fordern Sie vor dem Senden, Kaufen, Veröffentlichen oder Löschen eine Bestätigung an.
- Verwenden isolierte Profile für jede Automatisierung.
- Überprüfen Sie Ihren Verlauf und die besuchten Domains. nach jedem Test.
Lesezeichen verringern zwar die Offenlegung von Anmeldeinformationen bei der Eingabeaufforderung, beseitigen aber nicht alle Risiken. Eine Webseite kann versuchen, die Anweisungen des Agenten mithilfe von Schadsoftware zu manipulieren. Daher erfordern kritische Aktionen externe Kontrollen und deterministische Validierungen.
Wie man eine authentifizierte Sitzung wiederverwendet
Browser Use bietet verschiedene Möglichkeiten zur Aufrechterhaltung der Authentifizierung:
- Tatsächliches Chrome-Profil: Verwendet bestehende Benutzersitzungen wieder.
- Speicherstatus: Cookies und lokaler Speicher aus einer Datei laden.
- Cloud-Profil: Es verwaltet eine Sitzung in Browser Use Cloud.
- CDP: Verbindet den Agenten mit einer kompatiblen, bereits gestarteten Instanz.
Für die persönliche Automatisierung ist die einfachste Option die Verwendung eines realen Profils:
from browser_use import Agent, Browser, ChatGoogle
browser = Browser.from_system_chrome(
profile_directory="Profile 1"
)
agent = Agent(
task="Abre el panel de mi cuenta y descarga el último informe.",
browser=browser,
llm=ChatGoogle(model="gemini-2.5-flash"),
)
Möglicherweise müssen Sie Chrome vollständig schließen, bevor Sie das Skript ausführen. Die Browsernutzung erfordert, dass der Browser im kompatiblen Modus gestartet wird, und ein geöffneter Chrome-Prozess kann das Profil beeinträchtigen.
Für Produktions- oder CI-Systeme ist es sinnvoller, den Authentifizierungsstatus zu exportieren und ihn in einem isolierten Browser zu laden:
browser = Browser(storage_state="sesion.json")
Die Datei kann Cookies und Authentifizierungstoken enthalten. Schützen Sie sie wie ein Passwort, speichern Sie sie nicht im Repository und beschränken Sie ihre Leseberechtigungen.
So verbinden Sie den Browser mit CDP

Das Chrome DevTools-Protokoll ermöglicht die Steuerung einer kompatiblen Instanz über eine lokale oder entfernte Adresse. Wenn Sie bereits einen Browser mit aktiviertem Remote-Debugging konfiguriert haben, können Sie die Verbindung wie folgt herstellen:
from browser_use import Browser
browser = Browser(
cdp_url="http://localhost:9222"
)
CDP vereinfacht zwar die gemeinsame Nutzung einer Browserinstanz oder die Verbindung zu einem Remote-Anbieter, ermöglicht aber keine Agentenentscheidungen in Millisekunden. Browseraktionen können zwar schnell ausgeführt werden, doch jeder Schritt, der das Modell benötigt, hängt weiterhin von Inferenz, dem Netzwerk und dem bereitgestellten Kontext ab.
Der Debug-Port darf nicht im Internet zugänglich sein. Personen oder Prozesse mit Zugriff auf CDP könnten die Tabs steuern, sichtbare Informationen einsehen und authentifizierte Sitzungen ausnutzen. Beschränken Sie den Port auf die lokale Schnittstelle oder ein sicheres privates Netzwerk.
Anwendungsbeispiele für die Browsernutzung in der Praxis
Die Verwendung eines Browsers ist besonders dann nützlich, wenn der Pfad nicht durch eine einzelne stabile Struktur beschrieben werden kann. Einige mögliche Szenarien Sind:
- Die Forschungsergebnisse sind auf verschiedene Seiten verteilt.
- Vergleichen Sie Kataloge mit unterschiedlichen Designs und Filtern.
- Variable Formulare unter menschlicher Aufsicht ausfüllen.
- Berichte von autorisierten Business-Portalen herunterladen.
- Informationen sollten klassifiziert werden, bevor sie an ein CRM-System gesendet werden.
- Um unvorhersehbare Wege zu erkunden.
- Überwachen Sie Änderungen auf Seiten, denen eine geeignete API fehlt.
Für die Überwachung von Preisen in großem Umfang ist eine offizielle API oder ein deterministischer Scraper in der Regel schneller und kostengünstiger. Die Browsernutzung schafft Mehrwert, wenn jeder Shop ein individuelles Nutzererlebnis bietet. oder wenn es notwendig ist, die Bedingungen zu interpretieren, bevor das Ergebnis ermittelt werden kann.
Im Softwaretest kann Playwright Regressionstests ergänzen, indem es exploratives Testen ermöglicht, in natürlicher Sprache beschriebene Abläufe nachvollzieht oder unerwartete Verhaltensweisen aufdeckt. Es sollte Regressionstests jedoch nicht automatisch ersetzen, da diese bei jeder Ausführung dasselbe Ergebnis liefern müssen.
Arbeitsabläufe im Zusammenhang mit Bankgeschäften, Identitätsprüfung, Beschäftigung, Gesundheit oder KYC-Dokumentation erfordern besondere Aufmerksamkeit. Vor der Automatisierung sollten die Autorisierung geprüft, die Menge der verarbeiteten Daten minimiert und eine verantwortliche Person für die Genehmigung sensibler Vorgänge benannt werden.
Wann ist die Verwendung des Browsers nicht ratsam?
Die Verwendung eines Browsers ist nicht für alle Automatisierungen die optimale Lösung. Vermeiden Sie sie oder kombinieren Sie sie mit deterministischen Werkzeugen, wenn:
- Die Website bietet eine ausreichende offizielle API.
- Sie müssen Millionen von Seiten mit der gleichen Struktur verarbeiten.
- Die Operation sollte genau dasselbe Ergebnis liefern.
- Eine Fehlentscheidung kann zu finanziellen Verlusten oder Datenverlusten führen.
- Der Seiteninhalt kann nicht an ein externes Modell gesendet werden.
- Mehrstufige Verzögerungen sind inakzeptabel.
- Die Betriebsbedingungen lassen eine Automatisierung nicht zu.
Eine Hybridarchitektur liefert in der Regel bessere Ergebnisse. Der Browser kann die Traversierung planen und variable Elemente auflösen, während Playwright oder benutzerdefinierte Tools kritische Aktionen anhand bekannter Regeln ausführen.
Die Automatisierung einer Website mit Browser Use erfordert die Installation der Bibliothek und des Browsers, die Auswahl eines kompatiblen Modells, die Beschreibung der Aufgabe und die Festlegung klarer Grenzen. Für eine zuverlässige Lösung sollten Sie außerdem die Ausgabe validieren, Zugangsdaten schützen, Domains einschränken und festlegen, welche Schritte überwacht werden müssen.
Der Hauptvorteil der Browsernutzung besteht nicht darin, dass Selektoren vollständig überflüssig werden, sondern vielmehr darin, dass ein Modell seinen Ablauf anpassen kann, wenn es nicht alle Variationen vorhersehen kann. Gezielt eingesetzt, kann dies den Entwicklungsaufwand für komplexe Umfragen, Formulare und Portale reduzieren, ohne die deterministische Kontrolle bei heikelsten Operationen zu beeinträchtigen.
Ich bin ein Technik-Enthusiast, der seine „Geek“-Interessen zum Beruf gemacht hat. Ich habe mehr als 10 Jahre meines Lebens damit verbracht, modernste Technologie zu nutzen und aus purer Neugier an allen möglichen Programmen herumzubasteln. Mittlerweile habe ich mich auf Computertechnik und Videospiele spezialisiert. Das liegt daran, dass ich seit mehr als fünf Jahren für verschiedene Websites zum Thema Technologie und Videospiele schreibe und Artikel erstelle, die Ihnen die Informationen, die Sie benötigen, in einer für jeden verständlichen Sprache vermitteln möchten.
Bei Fragen reicht mein Wissen von allem rund um das Windows-Betriebssystem bis hin zu Android für Mobiltelefone. Und mein Engagement gilt Ihnen, ich bin immer bereit, ein paar Minuten zu investieren und Ihnen bei der Lösung aller Fragen in dieser Internetwelt zu helfen.

