ArachneControl – Open-Source-Datenerfassungssystem, bei dem der Server den Browser aus der Ferne steuert und Daten sammelt
(github.com/TaewonyNet)Es handelt sich um ein self-hosted Erfassungssystem, das Daten über die tatsächliche Browser-Session des Nutzers sammelt, während der Server zur Laufzeit dynamisch ausgibt, was und wie gesammelt werden soll. Ein Command-Execute-Report-Muster, bei dem der Server den Client (Browser) remote steuert.
Es löst per Design drei Probleme, die beim Neuschreiben von Crawlern immer wieder auftreten: Last/Blockaden auf dem Ziel-Backend, Login-Walls und erneute Client-Deployments bei jeder Änderung der Erfassungslogik.
- Zero-Footprint: Statt direkte Requests an den Zielserver zu senden, sammelt der bereits eingeloggte Browser des Nutzers die Daten stellvertretend → Zugriff hinter Login-Walls wie ein Mensch, während Backend-Last und Blockaden vermieden werden.
- Dynamische Server-Steuerung: Das Bookmarklet bleibt nach einmaliger Registrierung dauerhaft unverändert. Erfassungsregeln (Selektoren, Aktionen, Extraktion) gibt der Server als typisierte Commands aus → 0 Client-Redeployments bei Logikänderungen. TS-Typen werden automatisch aus einer zentralen Pydantic-Quelle generiert.
- Rezepte per Klick erstellen: Klickt man in der WebUI auf ein Element, wird der Selektor automatisch generiert; Aktionssequenzen (click, drag, scroll, swipe) → Extract-Rezept speichern.
script-eval ist untersagt (Whitelist). - Verlustfreie Speicherung: Write-ahead (202 nach synchronem Commit) + Idempotenz + automatische Wiederherstellung beim Neustart.
- Steuerung durch MCP-Agenten: Live-Pipes werden als MCP-Tools bereitgestellt (Guards für Host-Allowlist, Rate-Limit und Op-TTL). Bot-Umgehung und Massenscraping sind jedoch keine Ziele.
- secure-by-default: Admin-Authentifizierung standardmäßig ON (automatisches Token im Jupyter-Stil), Ausführungsgrenzen für Server-Response-eval (
script) und externe Beacons (beacon), kein Fingerprinting. - Kostenfrei und portabel: SQLite + In-Memory-Queue + eine einzige FastAPI. 0 externe Bezahldienste. OS-unabhängig reproduzierbar mit
uv. MIT.
Die Erfassung öffentlicher Websites benötigt wegen der Private-Network-Access-Beschränkungen des Browsers eine öffentliche URL; mit ENABLE_TUNNEL=1 wird dafür ein temporärer cloudflared-Tunnel gestartet (gemessen: Erfassung realer Nachrichtenseiten erfolgreich).
Noch keine Kommentare.