Web Scraping
Definition: Web Scraping (auch Web Harvesting oder Web Data Extraction) bezeichnet die automatisierte Extraktion strukturierter Daten aus Webseiten mithilfe von Crawler-Programmen oder spezialisierten Scraping-Tools. Das Programm sendet HTTP-Anfragen, parst den zurückgegebenen HTML-Code (oder JSON aus APIs) mit CSS-Selektoren oder XPath und speichert relevante Daten strukturiert in Datenbanken oder CSV-Dateien. Im Online-Marketing wird Scraping primär für Wettbewerbsanalysen, Preismonitoring, SEO-Audits und Keyword-Recherche eingesetzt. Wichtige Tools: Python-Libraries BeautifulSoup (statisches HTML), Scrapy (Crawling-Framework), Playwright/Puppeteer (JavaScript-gerenderte Seiten) sowie No-Code-Tools wie Apify, Octoparse und ParseHub. Scraping bewegt sich in einem rechtlich komplexen Bereich: robots.txt, Terms of Service und DSGVO setzen Grenzen.
Erläuterung
Scraping teilt sich in zwei Hauptkategorien: statisches HTML-Scraping (direktes Parsen der Server-Antwort – schnell, ressourcenschonend) und dynamisches Scraping mit Headless-Browsern (für JavaScript-gerenderte SPAs – langsamer, aber erfasst auch Client-seitig geladene Inhalte). Für Marketing-Anwendungsfälle ist die Frage «Brauche ich einen Headless-Browser?» entscheidend: Preislisten die via API geladen werden, erfordern Playwright oder Puppeteer; statische Meta-Tags sind mit BeautifulSoup extrahierbar.
Tools und Technologien
- BeautifulSoup (Python): Parsing-Library für statisches HTML; requests.get(url) + BeautifulSoup(html, 'html.parser'); CSS-Selektor: soup.select('div.preis'); einfachste Lösung für statische Seiten; kein JavaScript-Rendering; pip install beautifulsoup4 requests; gut für schnelle Einzelseiten-Extraktion
- Scrapy (Python): Vollständiges Crawling-Framework; Spiders für strukturiertes Crawling ganzer Sites; automatisches Folgen von Links; Item-Pipelines für Datentransformation und -speicherung; CrawlerProcess für Multi-Spider-Management; eingebautes Rate Limiting und Request-Throttling; für systematische Wettbewerber-Site-Analysen
- Playwright/Puppeteer: Headless-Browser-Automatisierung; JavaScript-gerenderte Inhalte (React/Vue/Angular-SPAs); playwright.chromium.launch(); page.goto(url) + page.content(); Browser-Automation: Formulare ausfüllen, Buttons klicken, durch Pagination navigieren; Screenshot-Funktion; langsamer als HTTP-Requests; Playwright: Python/Node.js/Java; Puppeteer: Node.js
- No-Code-Tools: Apify (Cloud-Scraping-Plattform, Actor-Marketplace, API-Zugriff); Octoparse (GUI-basiert, Klick-Scraper, Windows-Desktop-App); ParseHub (visuell, kostenloser Plan); Bright Data (Proxy-Netzwerk + Scraping-Tools); für Marketing-Teams ohne Python-Kenntnisse; höhere Kosten als selbst entwickelte Lösungen
Marketing-Anwendungsfälle
- Wettbewerber-SEO-Analyse: Meta-Titles und -Descriptions aller Wettbewerber-Seiten extrahieren; H1/H2-Strukturen vergleichen; interne Verlinkungsstrategien analysieren; Schema.org-Markup prüfen was Wettbewerber implementieren; regelmäßige Differenz-Analyse: neue Seiten entdecken; Screaming Frog als semiprofessionelle Alternative mit GUI
- Preismonitoring: Produktpreise bei Wettbewerbern täglich scrapen; Preisänderungen in Datenbank tracken; Alerting bei Unter- oder Überbieten eigener Preise; Amazon-Preishistorie: Camelcamelcamel.com als fertige Lösung; B2B: Anbieterlisten und Preislisten automatisiert erfassen; Preis-Elastizitäts-Analyse über Zeitreihen
- Keyword- und Content-Recherche: Google Search-Ergebnisse (SERPs) für Keyword-Rankings scrapen; «People Also Ask»-Boxen für FAQ-Content-Ideen extrahieren; Wettbewerber-Blog-Artikel-Themen systematisch erfassen; Amazon-Produktrezensionen für Voice-of-Customer-Analyse; Reddit/Quora-Threads für Pain-Point-Recherche
- Lead-Generierung: Unternehmensverzeichnisse, Branchenportale, LinkedIn-Alternativen scrapen; Kontaktdaten extrahieren (rechtliche Grenzen beachten – DSGVO!); Firmenlisten für Account-Based-Marketing; Eventkalender für Networking-Möglichkeiten; öffentliche Stellenanzeigen für Signal-Analyse (Wachstumsbranchen)
Technische Herausforderungen
- Anti-Scraping-Maßnahmen: CAPTCHAs (reCAPTCHA v2/v3, hCaptcha): 2Captcha oder Anti-Captcha-Services als Lösung (kostenpflichtig); Rate Limiting: HTTP 429 Too Many Requests; IP-Blocking nach zu vielen Anfragen; User-Agent-Fingerprinting: Browser-Fingerprint simulieren; Honeypot-Links: unsichtbare Links die Scraper verraten; JavaScript-Challenges (Cloudflare)
- Proxy-Rotation: Residential Proxies (echte IP-Adressen von ISPs): schwerer zu blockieren; Datacenter Proxies: günstiger aber leichter erkennbar; Bright Data, Oxylabs, SmartProxy als Anbieter; Rotating Proxy-Pool: jede Anfrage über andere IP; für intensives Scraping notwendig; Kosten: 5–15 USD pro GB bei residential
- JavaScript-Rendering: SPAs laden Daten per XHR/Fetch nach DOM-Aufbau; BeautifulSoup sieht nur initiales HTML; Network-Tab in Chrome DevTools: API-Aufrufe direkt identifizieren; oft einfacher: API direkt aufrufen statt gerenderte Seite zu scrapen; Playwright: page.waitForSelector('.preis') wartet auf dynamisch geladene Elemente
Rechtliche Rahmenbedingungen
- robots.txt: Disallow-Regeln für Scraper beachten; rechtlich nicht bindend (kein Gesetz) aber ethischer Standard; Verletzung kann Vertragsbruch bei ToS-Zustimmung sein; User-agent: * Disallow: /preise/ respektieren; Crawl-Delay-Direktive: Mindestpause zwischen Anfragen
- Terms of Service: Viele Sites verbieten automatisiertes Scraping explizit in ToS; hiQ vs. LinkedIn (US-Rechtsprechung): öffentliche Daten grundsätzlich scrapebare; deutsche Rechtslage: unlauterer Wettbewerb (UWG), Urheberrecht bei Datenbankwerken (§ 87a UrhG); bei Zweifel: Rechtsberatung einholen
- DSGVO: Personenbezogene Daten (Namen, E-Mails, Telefonnummern) scrapen: DSGVO-Anwendungsbereich; Rechtfertigungsgrundlage nötig (Art. 6 DSGVO); öffentliche Unternehmensregisterdaten: anders bewertet als private Profile; Social-Media-Scraping (LinkedIn, XING): ToS-Verletzung + DSGVO-Risiko