Manche Websites wollen einfach nicht gescrapt werden. Sie setzen ausgeklügelte Bot-Erkennung ein, liefern nur JavaScript-Inhalte oder blockieren automatisierten Zugriff komplett. Monatelang haben wir diese Abwehrmaßnahmen mit immer clevererer Browser-Automatisierung bekämpft. Mit v0.11 gehen wir einen anderen Weg: Wenn Scraping scheitert, fragen wir höflich per API.
Das Etsy-Problem
Etsy ist einer der beliebtesten Marktplätze für handgefertigte und Vintage-Artikel. Es ist auch einer der am schwersten zu scrapenden. Etsy verwendet DataDome, einen besonders aggressiven Bot-Erkennungsdienst, der praktisch alle automatisierten Anfragen blockiert, einschließlich Headless-Browser mit Stealth-Plugins.
Unsere Nutzer haben immer wieder nach Etsy-Unterstützung gefragt, und wir sind immer wieder an DataDome-Mauern gescheitert. Klassisches Scraping war eine Sackgasse. Dann haben wir entdeckt, dass Etsy eine Open API v3 anbietet, die Listing-Daten inklusive Preise bereitstellt und für Anwendungen kostenlos ist, die ihre Nutzungsbedingungen erfüllen.
Wenn du eine Etsy-URL zu DealMonitor hinzufügst, extrahieren wir jetzt die Listing-ID aus der URL und fragen die Etsy-API direkt ab. Die Antwort enthält den Preis als strukturiertes Objekt mit Betrag, Divisor und Währungscode. Kein Browser nötig, keine Bot-Erkennung zu umgehen, und die Daten sind immer korrekt, weil sie direkt aus Etsys Datenbank stammen.
Das ist ein Muster, das wir überall anwenden wollen: Die offizielle Datenquelle nutzen statt gegen die Website zu kämpfen.
IsThereAnyDeal: Spielepreise über alle Stores
Videospielpreise sind eine weitere knifflige Domäne. Spiele werden über Dutzende digitale Storefronts verkauft: Steam, GOG, Humble Bundle, Epic Games Store, Green Man Gaming und viele mehr. Jeder hat seine eigene Website, seinen eigenen Bot-Schutz und seine eigene Art, Preise anzuzeigen.
IsThereAnyDeal (ITAD) ist ein Dienst, der Spielepreise über alle großen Stores aggregiert. Wir haben ihre API in einem zweistufigen Prozess integriert: Zuerst suchen wir die eindeutige Kennung des Spiels anhand des Titels oder der Store-URL. Dann fragen wir die Preisübersicht ab, die den besten aktuellen Preis über alle Stores zurückgibt.
Das bedeutet: Wenn du ein Spiel auf DealMonitor verfolgst, verfolgst du nicht nur einen Store. Du verfolgst effektiv jeden Store, der dieses Spiel verkauft. Wenn der Preis irgendwo fällt, erfährst du es.
Multi-Preis pro URL
Eine einzelne Produktseite enthält oft mehrere Preise: das Hauptprodukt, verschiedene Größen oder Farben, Bundle-Angebote oder Abo-Stufen. Bis v0.11 verfolgte DealMonitor einen Preis pro URL. Das war eine Einschränkung.
Wir haben ein Konzept namens Candidate Keys eingeführt. Jeder Preiskandidat auf einer Seite hat jetzt einen einzigartigen Fingerprint basierend auf seinem HTML-Kontext: der Tag-Typ, die CSS-Klassen und der Selektor-Pfad. Wenn unsere Browser-Erweiterung mehrere unterschiedliche Preise auf einer Seite erkennt, kannst du wählen, welchen du verfolgen möchtest. Jeder verfolgte Preis bekommt seine eigene Historie, seinen eigenen Zielpreis und seine eigenen Benachrichtigungen.
Das ist besonders nützlich für Shops, die ein Produkt in mehreren Konfigurationen zeigen. Verfolge die 500g-Packung und die 1kg-Packung separat, jeweils mit eigenem Zielpreis. Oder verfolge sowohl den Monats- als auch den Jahrespreis einer Software.
Chrome-Pool mit Health-Monitoring
Für Shops, die immer noch eine vollständige Browser-Session benötigen, haben wir unsere Selenium-Infrastruktur überarbeitet. Statt für jeden Scrape eine neue Chrome-Instanz zu starten (teuer und langsam), halten wir jetzt einen Pool persistenter Chrome-Instanzen, die über Scrapes hinweg wiederverwendet werden.
Der Pool beinhaltet Health-Monitoring: Jede Chrome-Instanz wird regelmäßig auf Reaktionsfähigkeit geprüft. Instanzen, die nicht mehr antworten oder zu viel Speicher verbrauchen, werden automatisch beendet und ersetzt. Zwischen Scrape-Jobs führen inaktive Instanzen leichte Browsing-Aktivität durch, um realistische Session-Historien zu pflegen.
Der Auto-Restart-Mechanismus stellt sicher, dass selbst wenn eine Chrome-Instanz mitten im Scrape abstürzt, der Pool sich automatisch erholt. Der Health-Status des Chrome-Pools ist in unserem internen Monitoring-Dashboard sichtbar.
Shop-Scrape-Modus-Autolernen
Nicht jeder Shop braucht einen vollständigen Browser. Manche liefern ihre Preise in einfachem HTML oder strukturierten Daten, die eine simple HTTP-Anfrage abrufen kann. Aber bisher hatten wir keine systematische Methode zu wissen, welche Shops Selenium brauchen und welche nicht.
v0.11 führt Scrape-Modus-Autolernen ein. Jede Shop-Domain startet im "Auto"-Modus: Wir probieren zuerst HTTP und fallen auf Selenium zurück, wenn nötig. Nach fünf aufeinanderfolgenden erfolgreichen HTTP-Only-Scrapes wird der Shop automatisch auf "HTTP-Only"-Modus hochgestuft, und Selenium wird für zukünftige Checks komplett übersprungen.
Wenn ein HTTP-Only-Shop später Challenge-Seiten oder leere Ergebnisse liefert, setzt das System auf "Auto"-Modus zurück und versucht Selenium erneut. Dieser adaptive Ansatz bedeutet, dass unsere Scraping-Infrastruktur aus Erfahrung lernt und Ressourcen dort einsetzt, wo sie wirklich gebraucht werden.
Inline-JavaScript-Preis-Extraktion
Manche E-Commerce-Plattformen, besonders Magento- und Hyva-Shops, betten Produktkonfigurationsdaten direkt in JavaScript-Objekten auf der Seite ein. Der sichtbare Preis wird clientseitig aus diesen Objekten gerendert, was bedeutet, dass ein einfacher HTML-Parse ihn komplett verfehlt.
Wir haben eine neue Extraktionsstufe hinzugefügt, die Inline-JavaScript nach bekannten Mustern wie optionPrices-Objekten durchsucht. Wenn gefunden, parsen wir die JavaScript-Datenstruktur und extrahieren Variantenpreise direkt. Das gibt uns Zugang zu Preisen, die für unsere Pipeline zuvor unsichtbar waren.
JSON-LD-Verbesserungen
Strukturierte Daten im Web sind chaotisch. Die JSON-LD-Spezifikation erlaubt AggregateOffer-Typen mit Preisspannen, @graph-Wrapper, die mehrere Entitäten verschachteln, und @type-Arrays wie ["Product", "VideoGame"]. Wir haben Unterstützung für all diese Sonderfälle hinzugefügt, was die Preiserkennung auf Game-Stores wie Humble Bundle und großen Händlern mit komplexen Produktkatalogen deutlich verbessert.
Was das für dich bedeutet
- Etsy-Tracking funktioniert zuverlässig dank der offiziellen API, keine DataDome-Blockaden mehr.
- Spielepreis-Tracking deckt alle großen Stores über IsThereAnyDeal ab.
- Verfolge mehrere Preise pro Produktseite für verschiedene Varianten oder Konfigurationen.
- Schnelleres und zuverlässigeres Scraping mit Chrome-Pool und Autolernen.
Wir glauben, dass die Zukunft des Preis-Trackings ein Hybrid-Ansatz ist: APIs wo verfügbar, intelligentes HTTP-Scraping wo möglich, und Browser-Automatisierung nur als letzter Ausweg. v0.11 ist ein großer Schritt in diese Richtung.
Starte Preis-Tracking von Etsy, Game-Stores und überall sonst auf dealmonitor.app. Die vollständige Liste der Änderungen findest du in unserem Changelog.
