Scrape Dojo ist mein neues Open-Source-Projekt und der offizielle Nachfolger von docudigger. Statt nur Amazon-Rechnungen zu scrapen, kannst du jetzt beliebige Websites mit deklarativen JSON-Workflows automatisieren. Und ja, AI hat mir massiv bei der Entwicklung geholfen.
Hey! Wenn du mich schon länger verfolgst, kennst du vielleicht docudigger, mein Tool, das automatisch Amazon-Rechnungen als PDF heruntergeladen hat. Das war cool, aber auch ziemlich limitiert: Es konnte eben nur Amazon. Irgendwann kam der Punkt, wo ich mehr wollte. Viel mehr. Und so ist Scrape Dojo entstanden. 🥷
Von docudigger zu Scrape Dojo: Die Evolution 🔄
docudigger war mein erstes ernsthaftes Open-Source-Projekt. Ein Node.js-Tool, das sich mit Puppeteer bei Amazon eingeloggt hat, durch die Bestellhistorie navigiert ist und alle Rechnungen als PDF heruntergeladen hat. Für Steuererklärung und DMS super praktisch.
Aber das Problem war: Alles war auf Amazon hardcoded. Jede Website-Änderung von Amazon hat das Tool gebrochen. Und wenn jemand eine andere Website scrapen wollte? Pech gehabt, alles neu schreiben.
Die Idee hinter Scrape Dojo war deshalb von Anfang an: Was wäre, wenn man Scraping deklarativ beschreiben könnte? Wie Infrastructure-as-Code, nur eben für Web Scraping. Und genau das ist Scrape Dojo geworden.
Was kann Scrape Dojo? 🥷
Scrape Dojo ist eine self-hosted Web-Scraping- und Browser-Automations-Plattform. Der Kerngedanke: Du schreibst keinen Puppeteer-Code mehr, sondern beschreibst deine Scrapes in JSON/JSONC-Dateien. Das Tool übernimmt den Rest.
Deklarative JSON-Workflows
Das Herzstück von Scrape Dojo sind die Workflow-Dateien. Du definierst Schritte und Aktionen, navigieren, klicken, tippen, extrahieren, downloaden, alles in einer simplen JSON-Struktur:
{
"scrapes": [{
"id": "mein-erster-scrape",
"metadata": {
"description": "Seitentitel auslesen",
"triggers": [{ "type": "cron", "value": "0 8 * * *" }]
},
"steps": [{
"name": "Main",
"actions": [
{ "action": "navigate", "params": { "url": "https://example.com" } },
{ "name": "title", "action": "extract", "params": { "selector": "h1" } },
{ "action": "logger", "params": { "message": "Titel: {{previousData.title}}" } }
]
}]
}]
}Keine Zeile Puppeteer-Code geschrieben, trotzdem eine vollständig funktionierende Scraping-Pipeline mit Cron-Trigger. Das ist die Magie. ✨
25+ eingebaute Actions
Scrape Dojo bringt über 25 Actions mit, die du in deinen Workflows kombinieren kannst:
- navigate, click, type, Browser-Interaktionen
- extract, extractAll, Daten aus dem DOM ziehen
- screenshot, download, Dateien und Screenshots speichern
- loop, condition, Kontrollfluss direkt in der Workflow-Definition
- logger, webhook, Monitoring und Benachrichtigungen
Dazu kommen Handlebars-Templates und JSONata-Expressions für dynamische Daten und mächtige Transformationen.
Real-Time Monitoring
Scrape Dojo hat ein modernes Angular-UI mit SSE-basiertem Live-Tracking. Du siehst in Echtzeit, was dein Scrape gerade macht, welcher Step läuft, welche Daten extrahiert werden, ob Fehler auftreten. Kein Rätselraten mehr in den Logs.
Security First 🔐
Credentials werden mit AES-256-CBC verschlüsselt gespeichert. Dazu gibt es optionale Authentifizierung mit JWT, OIDC/SSO und sogar MFA/TOTP. Für ein Self-Hosted-Tool, das sich bei Websites einloggt, ist Security kein Nice-to-have, es ist Pflicht.
Der Tech Stack
Unter der Haube stecken die besten Tools, die das JavaScript-Ökosystem zu bieten hat:
- NestJS 11, Backend-Framework mit modularer Architektur
- Angular 21, Frontend mit modernem Signal-basiertem State Management
- Puppeteer, Headless Chrome für die Browser-Automatisierung
- Nx 22, Monorepo-Management mit intelligentem Caching
- TypeScript, Durchgängig typisiert, von API bis UI
AI als Entwicklungspartner 🤖
Jetzt kommt der Teil, über den viele ungern reden: Ich nutze AI aktiv in der Entwicklung von Scrape Dojo. Und ich bin da ganz transparent, das Repo trägt sogar ein "AI-Aided Development (AIAD)"-Banner in der README.
Das bedeutet nicht, dass ich die AI einfach Code generieren lasse und auf "Merge" klicke. Es bedeutet, dass ich Tools wie Claude Code als echten Entwicklungspartner einsetze:
- Architektur-Diskussionen: Ich bespreche Design-Entscheidungen mit der AI, bevor ich Code schreibe
- Code-Generierung: Boilerplate, Tests und repetitive Patterns werden AI-unterstützt erstellt
- Code-Reviews: Die AI reviewt meinen Code und findet Probleme, die ich übersehe
- Dokumentation: Die gesamte Docs-Site auf scrape-dojo.com ist AI-unterstützt entstanden
- Refactoring: Komplexe Umstrukturierungen werden mit AI geplant und umgesetzt
Das Ergebnis? Ich bin als Solo-Entwickler deutlich produktiver. Features, die mich früher Tage gekostet hätten, schaffe ich in Stunden. Die Code-Qualität ist dabei nicht gesunken, im Gegenteil. Durch die ständigen AI-Reviews ist der Code konsistenter und besser getestet als bei docudigger.
Quick Start mit Docker 🐳
Das Schöne an Scrape Dojo: Du kannst es in unter einer Minute starten. Ein Docker-Compose-File und los geht's:
services:
scrape-dojo:
image: ghcr.io/disane87/scrape-dojo:latest
ports:
- '8080:80'
environment:
- SCRAPE_DOJO_ENCRYPTION_KEY=dein_key_hier
- DB_TYPE=sqlite
volumes:
- ./data:/home/pptruser/app/data
- ./config:/home/pptruser/app/config
restart: unless-stoppedDanach einfach http://localhost:8080 öffnen, UI und API laufen auf dem gleichen Port. Deine Scrape-Definitionen legst du als JSON-Dateien in den config-Ordner, und sie erscheinen automatisch in der UI (Hot Reload!).
docudigger als Scrape-Dojo-Workflow 💡
Das Beste zum Schluss: Alles, was docudigger konnte, kannst du jetzt als Scrape-Dojo-Workflow abbilden. Login bei Amazon, durch die Bestellhistorie navigieren, Rechnungen downloaden, alles deklarativ, alles konfigurierbar, alles erweiterbar. Und wenn Amazon mal wieder das Layout ändert, passt du einfach die JSON-Datei an, statt Code zu debuggen.
Fazit 🎯
Scrape Dojo ist für mich die logische Weiterentwicklung von docudigger. Von einem einzelnen Amazon-Scraper zu einer universellen Scraping-Plattform. Von hardcoded Puppeteer-Code zu deklarativen Workflows. Von Solo-Entwicklung zu AI-unterstützter Entwicklung.
Das Projekt ist Open Source (MIT-Lizenz), komplett self-hosted und steht jedem frei zur Verfügung. Wenn du Lust hast, probier es aus, ich freue mich über Feedback, Issues und natürlich Stars auf GitHub! ⭐