3 Punkte von kingtw 4 시간 전 | Noch keine Kommentare. | Auf WhatsApp teilen

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.

Noch keine Kommentare.