Selbst scrapen oder beauftragen? Meine ehrliche Einschätzung.
Ich habe beides gemacht. Ich habe Scraper gebaut, die jahrelang zuverlässig liefen. Ich habe Scraper gebaut, die nach dem ersten Layout-Update der Zielseite komplett stillgestanden haben. Ich habe Stunden damit verbracht, IP-Rotationen zu debuggen, Cloudflare-Bypässe zu schreiben, und headless-Chrome-Sessions zu managen, die sich nach drei Tagen still beenden.
Und heute biete ich Managed Data-as-a-Service an.
Das macht mich zu einem befangenen Zeugen. Das weiß ich. Deswegen versuche ich hier das Gegenteil von dem zu tun, was ein normaler Dienstleister tun würde: Ich erkläre dir, wann du keinen externen Service brauchst — und wann du ihn trotzdem ernsthaft in Betracht ziehen solltest.
Wann du selbst scrapen solltest
Es gibt echte Situationen, in denen ein eigener Scraper die richtige Entscheidung ist.
Stabile, einfache Quellen. Wenn du Daten von einer Seite beziehst, die sich selten ändert und keine nennenswerten Anti-Scraping-Maßnahmen hat, ist ein einfacher Python-Scraper oft die sinnvollste Lösung:
import requests from bs4 import BeautifulSoup
response = requests.get( "https://beispiel.de/preisliste", headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"} )
soup = BeautifulSoup(response.text, "html.parser")
preise = soup.select(".preistabelle tbody tr")
for row in preise:
cols = row.find_all("td")
print(cols[0].text.strip(), cols[1].text.strip())
Das ist keine Kunst, das ist Handwerk. Für stabile Quellen funktioniert es – und du brauchst dafür keinen externen Dienstleister.
Einmalige Extraktion. Du willst einmal Daten aus einer Quelle exportieren – historische Daten, ein einmaliges Dataset für eine Analyse. Dafür lohnt sich kein Servicevertrag. Bau den Scraper, hol die Daten, fertig.
Interne Systeme. Wenn du Daten aus deinen eigenen Systemen extrahieren willst – Legacy-Software ohne API, altes Intranet – ist ein eigener Scraper fast immer die bessere Wahl. Kein externer Dienstleister kennt deine Infrastruktur besser als du.
Entwicklerkapazität vorhanden. Wenn du jemanden im Team hast, der das kann und der die Zeit hat, es regelmäßig zu pflegen – dann nutz das. Das Knowhow bleibt im Haus, du hast volle Kontrolle.
Wann selbst gebaut scheitert
Jetzt kommt der Teil, über den ich weniger gerne spreche.
Anti-Bot-Maßnahmen. Große Websites setzen professionelle Anti-Bot-Systeme ein: Cloudflare, DataDome, PerimeterX. Diese Systeme erkennen automatisierte Anfragen an Timing-Mustern, Browser-Fingerprints, dem Fehlen von natürlichen Mousebewegungen, TLS-Fingerprints und Dutzenden anderen Signalen.
Dagegen anzukämpfen ist ein Vollzeitjob. Ein eigener Scraper gegen ein professionelles Anti-Bot-System ist kein Entwicklungsprojekt — es ist ein Katz-und-Maus-Spiel. Du passt deinen Scraper an, das Anti-Bot-System lernt. Repeat.
JavaScript-heavy Sites. Viele moderne Websites rendern Inhalte erst im Browser via JavaScript. Ein einfacher `requests`-Aufruf gibt dir das HTML-Gerüst — ohne die Daten, die du willst. Dann brauchst du Playwright oder Selenium, einen Browser-Pool, und einen Server, der das ausführt:
from playwright.async_api import async_playwright
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page() await page.goto("https://beispiel.de/dynamisch")
await page.wait_for_selector(".daten-container")
inhalt = await page.inner_text(".daten-container")
await browser.close()
Das funktioniert – bis ein Update des Browsers, der Website oder der Library alles bricht. Und solche Updates kommen häufiger, als man denkt.
Layout-Changes. Stell dir vor, du hast CSS-Selektoren hart in deinen Scraper kodiert:
preis = soup.select(".product-card .price span.amount")[0].text
Die Website ändert ihr Layout. Neues CSS. Neue Klassenstruktur. Dein Scraper liefert entweder leere Ergebnisse oder crasht – meistens unbemerkt, bis jemand merkt, dass die Daten seit drei Wochen falsch sind. Manchmal crasht er auch nicht, er liefert einfach still und leise falsche Daten. Das ist eigentlich schlimmer.
Mehrere Quellen gleichzeitig. Wenn du Daten aus fünf, zehn oder zwanzig Quellen brauchst, multipliziert sich das Wartungsproblem. Jede Quelle hat eigene Anti-Bot-Maßnahmen, eigene Layouts, eigene Edge Cases. Das ist keine Entwicklungsarbeit mehr – das ist Wartungsarbeit, die jemanden dauerhaft bindet.
Was ein Managed Service wirklich beinhaltet
Das ist der Punkt, der in den meisten Vergleichen untergeht. Ein externer Datenbeschaffungs-Service ist kein „wir haben den Scraper für dich gebaut“. Es ist ein laufender Betrieb.
Was du bekommst:
- IP-Rotation und Proxy-Management – Requests kommen von wechselnden IPs, kein dauerhaftes Blocking durch Ziel-Websites
- Browser-Simulation – JavaScript-Rendering, natürliche Klick- und Scrollmuster, saubere Fingerprints
- Layout-Monitoring – wenn eine Seite ihr CSS ändert, wird der Scraper angepasst, ohne dass du es merkst
- Datenformatierung – du bekommst strukturierte Daten (JSON, CSV, API-Endpoint), keinen rohen HTML-Dump
- Monitoring – wenn etwas nicht läuft, wird es bemerkt und repariert
Was du nicht bekommst: Freiheit davon, dich ums Scraping kümmern zu müssen. Das ist der eigentliche Wert.
Die Kostenrechnung
Alle denken, selbst bauen ist günstiger. Lass uns das durchrechnen.
| Kostenpunkt | Selbst gebaut | Managed Service |
|---|---|---|
| Initiale Entwicklung | 20–40h Entwicklerzeit | — |
| Monatliche Wartung | 4–10h/Monat | — |
| Proxy-Kosten (für Anti-Bot) | €50–200/Monat | inklusive |
| Server-Kosten | €20–80/Monat | inklusive |
| Incident-Aufwand (Layout-Changes) | schwer kalkulierbar | inklusive |
| Monatliche Gesamtkosten | €320–€900+ | €490/Monat |
Die Zahlen sind grob – aber die Größenordnung stimmt. Der Entwickler, der den Scraper wartet, kostet Geld. Auch wenn es „nur nebenbei“ passiert – und „nebenbei“ ist in der Regel einer der teuersten Arbeitsmodi.
Wenn dein Entwickler 4 Stunden pro Monat mit Scraper-Wartung verbringt und du intern €80/Stunde ansetzt, sind das €320/Monat – für eine Aufgabe, die er wahrscheinlich lieber nicht macht, und die ihn von eigentlicher Entwicklungsarbeit abhält.
Dazu kommen Proxy-Kosten, sobald Anti-Bot-Systeme im Spiel sind. Billige Proxy-Provider für €30/Monat funktionieren gegen Cloudflare nicht. Professionelle Rotation kostet €100–200/Monat minimum.
Meine ehrliche Empfehlung
Wenn du eine stabile, einfache Quelle hast und die Entwicklerkapazität dafür – bau selbst. Ich meine das ernst.
Wenn du Daten aus mehreren Quellen brauchst, die Quellen sich regelmäßig ändern, Anti-Bot-Maßnahmen im Weg sind, oder du keine Entwicklerkapazität für laufende Wartung hast – dann ist ein Managed Service die pragmatischere Wahl.
Die Frage ist nicht „können wir das selbst bauen?“ – du kannst das fast immer. Die Frage ist: „Wollen wir das dauerhaft betreiben?“
Meistens ist die ehrliche Antwort: nein.
Welche Datenquellen wir bei brain-maze beschaffen
Zur Orientierung, was typische Managed-Service-Anwendungsfälle sind:
- Preisbeobachtung – Wettbewerberpreise, Marktpreise, Marktplatz-Listings, täglich oder stündlich
- Ausschreibungsportale – öffentliche Vergabeplattformen, automatisch gefiltert nach Relevanzkriterien
- Branchenverzeichnisse – Firmendaten, Kontaktinformationen, Standortdaten
- Marktdaten – Stellenanzeigen (als Marktindikator), Newsfeeds, Bewertungsplattformen
- Produktdaten – Specs, Verfügbarkeiten, Kategorisierungen aus Online-Shops
Falls dein Use Case hier passt oder du nicht sicher bist, ob Scraping die richtige Lösung ist:
→ Data-as-a-Service – was es beinhaltet und was es kostet
Auf der Seite gibt es auch einen ROI-Rechner – du gibst deinen monatlichen Zeitaufwand und Stundensatz ein, und bekommst sofort den Vergleich mit den 490 €/Monat.
Wenn du lieber direkt sprichst:


