Otto Produkt-Scraper

Der Katalog eines deutschen Händlers,
ein Produkt je Zeile.

Otto ist einer der größten Sortimentshändler Deutschlands, und seine Produktseiten werden im Browser zusammengesetzt statt fertig ausgeliefert. Dieser Dienst lädt sie so, wie ein Browser es tut, und liefert siebzehn Spalten je Produkt-URL - dasselbe Schema, das unsere anderen Katalog-Scraper verwenden, ein Importer liest also alle.

einmalig 500 Zeilen gratisdanach 0,002 $ pro Zeilesiebzehn Spalten je ProduktCSV · JSON · Excel
So funktioniert es

Eine Liste von URLs rein, eine Tabelle raus.

  1. SCHRITT 1Melden Sie sich auf der Plattform an.
  2. SCHRITT 2Öffnen Sie den Otto Products Scraper.
  3. SCHRITT 3Fügen Sie die gewünschten Otto-Produkt-URLs ein, eine pro Zeile.
  4. SCHRITT 4Wählen Sie Ihr Ausgabeformat (CSV / JSON / XLSX).
  5. SCHRITT 5Starten Sie den Job.
  6. SCHRITT 6Laden Sie die Ergebnisse herunter - eine Zeile je URL, siebzehn Spalten.
Was Sie wissen sollten

Was einen Lauf gegen Otto prägt.

Die Angebote werden im Browser zusammengesetzt

Rufen Sie https://www.otto.de mit einem gewöhnlichen Client ab, und Sie bekommen eine funktionierende Seite von rund 320 KB mit siebzig-und-ein-paar Script-Tags und keinen Produktlinks im ausgelieferten Markup. Der Katalog kommt danach, aus JavaScript. Alles, was auf einer HTTP-Bibliothek und einem HTML-Parser aufbaut, liest eine gültige Seite und findet keine Produkte darin - dieser Dienst lädt die Seite stattdessen so, wie ein Browser es tut.

Ein Endkundenhändler, kein Fachgroßhandel

Otto verkauft an die Öffentlichkeit, und das ist erwähnenswert, weil die anderen Kataloge auf diesem Schema - BiggestBook, Vistaprint, Waxie - Fachhandelsseiten sind, deren Preisspalten aus jeweils eigenen Gründen leer bleiben. Ein Endkundenshop veröffentlicht seine Preise für alle. Wir haben die von Otto nicht gemessen und versprechen sie deshalb auch nicht, aber die Gründe, die jene Seiten für leere Geldspalten nennen, gelten hier nicht.

Siebzehn Spalten, einige davon paarweise

Der Export enthält price und parsed_price, sku und sku_code, image und images, url und product_url. Jeweils eines ist zum Lesen und eines zum Rechnen da, und zu wissen, welches was ist, bevor Sie den Importer schreiben, erspart eine Neufassung.

Dieselbe Form wie der Rest der Familie

Livescraper fährt dieses Schema über eine Reihe von Handels- und Supply-Quellen. Die siebzehn Namen und ihre Reihenfolge sind identisch, ein Importer liest also alle, und eine zweite Quelle hinzuzufügen ist eine Konfigurationsänderung und kein Projekt.

Jede Zeile sagt, ob es geklappt hat

Die letzte Spalte ist status, geschrieben von unserem Exporter und nicht von der Website. Eine Zeile, die nicht abgerufen werden konnte, kommt trotzdem an und trägt den Grund. Sie gleichen gegen die Eingabeliste ab, statt drei Wochen später eine stille Lücke zu entdecken.

Wir sagen, was wir nicht gemessen haben

Die beiden Läufe hinter dieser Seite übermittelten beide eine Platzhalter-URL, die einen 404 lieferte, wir haben also überhaupt keine Otto-Produktdaten. Die Spaltenliste unten ist echt - sie ist die Kopfzeile dieser Exporte. Die Werte werden nicht beschrieben, weil wir keine gesehen haben.

Was Sie zurückbekommen

Siebzehn Spalten, je Produkt.

Aus der Kopfzeile eines echten Exports dieses Dienstes gelesen, in der Reihenfolge des Tabellenblatts. Die beiden Läufe, die wir haben, lieferten unter dieser Kopfzeile keine Daten - siehe den Hinweis unter der Tabelle -, jeder Eintrag sagt also, wofür die Spalte da ist, und hört dort auf.

query
Die Otto-URL, die Sie übermittelt haben, in jeder Zeile wiederholt, damit ein Export über viele Produkte trennbar bleibt. Behalten Sie sie: sie ist der einzige Nachweis, auf welche Eingabe der Rest der Zeile antwortet.
sku_code
Der Artikelcode, wie der Katalog ihn druckt. Bildet ein Paar mit sku weiter unten - prüfen Sie beide, bevor Sie einen Verknüpfungsschlüssel wählen, denn in dieser Schema-Familie werden sie unabhängig gefüllt und wurden schon identisch wie auch verschieden beobachtet.
product_url
Die kanonische Produktseite. Verschieden von url, das die Adresse meldet, aus der die Zeile tatsächlich entstanden ist; die beiden unterscheiden sich, sobald ein übermittelter Link weiterleitet.
name
Der Produkttitel, wie die Seite ihn nennt. Rechnen Sie mit Deutsch, denn dies ist ein deutscher Shop - planen Sie Kollation und Zeichenkodierung dieser Spalte entsprechend.
description
Der Beschreibungstext. Rechnen Sie mit einem langen Freitextfeld statt einer kurzen Bezeichnung und geben Sie ihm eine breite Spalte oder einen Text-Typ in der Datenbank.
parsed_price
Der Preis als reine Zahl, ohne Symbol und ohne Tausendertrennzeichen - der für Arithmetik, Sortierung und Schwellenwerte.
price
Der Preis wie angezeigt. Nehmen Sie ihn, wenn Sie einem Kunden genau zeigen müssen, was die Seite gesagt hat; nehmen Sie parsed_price, wenn Sie rechnen müssen. In einem deutschen Shop ist die angezeigte Form nicht die, die Ihre Tabellenkalkulation standardmäßig einliest.
currency
Die Währung, in der der Preis angegeben ist. Lesen Sie sie aus, statt sie anzunehmen - so entsteht sonst die Addition eines Euro-Betrags zu einem Dollar-Betrag.
availability
Der Lagerstatus, wie er auf der Seite veröffentlicht ist. Behandeln Sie ihn als Aussage des Katalogs zum Zeitpunkt des Scrapens, nicht als Live-Bestandsdaten.
rating
Die Durchschnittsbewertung, sofern die Seite eine veröffentlicht. Nicht jedes Produkt trägt eine, schreiben Sie den Importer also so, dass er eine leere Zelle akzeptiert statt daran zu scheitern.
reviews
Die Anzahl der Rezensionen, mit demselben Vorbehalt wie rating. Wo beide vorhanden sind, gehören sie zusammen; eine Note ohne Anzahl dahinter reicht nicht zum Ranken.
images
Jedes Bild, das die Seite trägt, in einem Feld. Trennen Sie es vor dem Speichern auf, wenn Sie eine Zeile je Asset brauchen - und prüfen Sie erst, was das Trennzeichen tatsächlich ist, denn in dieser Schema-Familie ist genau das schon schiefgegangen.
brand
Hersteller oder Marke. Das ist das Feld, nach dem man für Sortimentsarbeit gruppiert - welche Marken ein Händler listet und wie tief jede Linie geht.
sku
Die Artikelnummer. Die andere Hälfte des Identifikator-Paars mit sku_code.
url
Die Adresse, aus der die Zeile entstanden ist. Vergleichen Sie sie mit query, um Weiterleitungen zu erkennen, und mit product_url, um Kanonisierung zu erkennen.
image
Das Hauptbild für sich, damit der häufige Fall - ein Vorschaubild je Produkt - ohne String-Aufteilung auskommt.
status
Ein Kennzeichen je Zeile, geschrieben von unserem Exporter und nicht von Otto. Es meldet, ob die Zeile abgerufen wurde. Beide Läufe hinter dieser Seite tragen hier http 404, weil die übermittelte URL ein Platzhalter war, den es nicht gibt.

Siebzehn Spalten pro Zeile · CSV, JSON oder Excel

Hinter dieser Seite stehen zwei Läufe vom 14. und 15. Juli 2026, deren Nutzdaten Byte für Byte identisch sind. Beide übermittelten https://www.example.com/product/123 - einen Platzhalter, keine Otto-Adresse - und beide lieferten eine einzige Zeile mit http 404 und allen vierzehn Datenspalten leer. Wir können Ihnen das Schema also mit Sicherheit nennen und über Ottos Werte gar nichts, und diese Seite tut nicht so, als wäre es anders. Die siebzehn Namen erscheinen in derselben Reihenfolge in unseren BiggestBook-, Vistaprint- und Waxie-Exporten, und die Waxie-Läufe sind gefüllt - daran erkennen wir, dass das Schema aktiv und kein Platzhalter ist. Ottos Spalten beschreiben wir bewusst nicht mit den Werten jener Seiten: das sind Fachhandelsseiten, deren Geldspalten aus jeweils eigenen Gründen leer sind, und Otto ist ein Endkundenhändler. Deren Messungen zu übernehmen wäre eine Vermutung im Gewand einer Tatsache.

Typische Workflows

Wofür ein Handelskatalog gut ist.

Preisbeobachtung

Eine Sortimentslinie beobachten, nicht einen Artikel

Übermitteln Sie die URLs der Produkte, die Sie interessieren, nach Zeitplan und behalten Sie parsed_price, currency und das Laufdatum. Der Wert liegt nicht in einer einzelnen Zahl, sondern in der Reihe - ein Händler bewegt meist eine ganze Linie auf einmal, und eine Tabelle zeigt das, wo ein Browser-Tab es nicht tut.

Preisgestaltung · Monitoring
Sortimentsanalyse

Sehen, welche Marken ein Händler wirklich führt

Gruppieren Sie einen Export nach brand und zählen Sie. Die Tiefe je Marke zeigt, wo ein Händler sich festgelegt hat und wo er nur probiert - dieselbe Frage, die ein Einkäufer vor der Aufnahme eines Lieferanten stellt, beantwortet aus dem Katalog selbst.

Category Buying · Sortiment
Kataloganreicherung

Die Felder füllen, die Ihren Daten fehlen

Produktdatenbanken sind meist stark bei Identifikatoren und dünn bei Texten und Bildern. description, image und images schließen diese Lücke gegen einen Identifikator, den Sie bereits haben, ohne dass irgendetwas neu fotografiert werden muss.

E-Commerce-Ops · Katalog
Markteintrittsrecherche

Einen deutschen Shop von außerhalb Deutschlands lesen

Der Katalog eines nationalen Händlers ist das günstigste verfügbare Bild davon, was ein Markt führt und in welcher Preislage. Behalten Sie name, brand und parsed_price, und Sie haben die Form einer Kategorie, ohne eine Studie zu beauftragen.

Strategie · Marktforschung
Preise

Zahlen Sie nur, was Sie tatsächlich nutzen.

Gratis-Kontingent

Die ersten 500 Zeilen sind gratis

Einmalig, bei der Anmeldung. Keine Karte, und nichts, was danach gekündigt werden müsste.

Einmalig, bei der Anmeldung
Preis

danach 0,002 $ pro Zeile

Abgerechnet nach tatsächlich gelieferten Zeilen. Eine Zeile, die mit einem anderen als einem erfolgreichen status zurückkommt, ist keine Zeile mit Produktdaten und wird auch nicht als solche berechnet.

Abgerechnet nach gelieferten Zeilen
Kein Abo

Nichts Wiederkehrendes

Guthaben verfällt nicht im Monatsrhythmus. Fahren Sie im März einen Katalogdurchlauf und danach nichts mehr bis September, wenn die Arbeit so aussieht.

Kein monatlicher Verfall
10 % Rabatt auf Ihren ersten bezahlten Lauf.Verwenden Sie beim Checkout den Code LIVESCRAPER10.
Registrieren
Passt gut zusammen mit

Andere Kataloge, dieselben siebzehn Spalten.

Das Rechtliche

Ist es legal, Otto zu scrapen?

Produktfakten auf einer öffentlich erreichbaren Seite sind gewöhnliche Wettbewerbsinformationen. Die hier erwähnenswerten Vorbehalte betreffen die Weiterverwendung und den Umstand, dass eine deutsche Seite eine deutsche Seite ist.

Ein Preis, ein Produktname, eine Marke und ein Lagerstatus sind Fakten über zum Verkauf angebotene Waren. Sie von einer Seite zu lesen, die jedem Besucher ausgeliefert wird, ist dieselbe Tätigkeit, die ein Einkäufer von Hand ausführt, nur in nützlichem Tempo. Nichts in den siebzehn Spalten beschreibt eine Person: kein Name, keine E-Mail-Adresse, keine Telefonnummer, kein Konto - die datenschutzrechtlichen Fragen, die unsere personenbezogenen Dienste prägen, stellen sich hier also nicht. Bei einer deutschen Seite gehört das ausdrücklich gesagt, denn die DSGVO ist das Erste, wonach gefragt wird, und sie regelt personenbezogene Daten - was eine Produktzeile nicht ist.

Zwei Vorbehalte sind erwähnenswert. Erstens die Weiterverwendung: Beschreibungen und Produktfotografie sind urheberrechtlich geschütztes Material. Sie intern für Preisbeobachtung, Sortimentsanalyse oder den Abgleich mit den eigenen Daten zu nutzen, ist gängige Praxis; sie als eigenen Katalog zu veröffentlichen, ist eine andere Frage mit einer anderen Antwort. Zweitens die erklärten Präferenzen der Website selbst. Otto veröffentlicht eine robots.txt, und für einen allgemeinen Crawler enthält sie nur eine Handvoll enger Ausschlüsse statt eines pauschalen, Produktseiten gehören also nicht zu den Pfaden, die sie Crawler zu meiden bittet. Wir lesen diese Datei, statt etwas anzunehmen, wir bleiben auf öffentlich zugänglichen Seiten und wir laufen in rücksichtsvollem Tempo.

Unsere eigenen Bedingungen sind dieselben wie bei jedem anderen Dienst hier. Nur öffentlich zugängliche Seiten, nichts hinter einem Login, keine Tracker Dritter auf der Datenebene, und Exporte werden nach 30 Tagen automatisch gelöscht. Ihre ersten 500 Zeilen sind gratis und brauchen keine Kreditkarte.

livescraper.app · was einen Lauf prägt
Eine Produkt-URL je Zeile
Die Seite wird gerendert, nicht nur abgerufen
Nur anonymer Zugang
Keine Otto-Werte gemessen - nur das Schema
Exporte werden nach 30 Tagen automatisch gelöscht
Die Form der Tabelle können wir Ihnen mit Sicherheit nennen. Was Otto hineinschreibt, haben wir noch nicht gesehen.
Häufige Fragen

Was Leute fragen, bevor sie sich anmelden.

Welche Spalten enthält der Export?+
Siebzehn, in dieser Reihenfolge: query, sku_code, product_url, name, description, parsed_price, price, currency, availability, rating, reviews, images, brand, sku, url, image und status. Eine Zeile je übermittelter Produkt-URL.
Gibt es auf dieser Seite Beispieldaten von Otto?+
Nein, und wir erfinden auch keine. Beide Läufe hinter dieser Seite übermittelten eine Platzhalter-URL, die http 404 lieferte, jede Datenspalte kam also leer zurück. Das reicht, um die siebzehn Spaltennamen festzustellen, und für nichts weiter - deshalb beschreibt diese Seite, wofür jede Spalte da ist, und niemals, wie ihre Werte aussehen.
Werden die Preisspalten gefüllt sein?+
Wir haben sie nicht gemessen, also versprechen wir nichts. Sagen können wir: die Gründe, die unsere anderen Katalogseiten für leere Preisspalten nennen, gelten hier nicht. Das sind Fachhandelsseiten, die je Konto oder je Menge kalkulieren, und Otto ist ein Endkundenhändler, der Preise für alle veröffentlicht. Das macht es wahrscheinlich, nicht sicher, und wir markieren den Unterschied lieber, als eine Messung zu behaupten, die wir nicht haben.
Warum braucht Otto mehr als eine einfache HTTP-Anfrage?+
Weil die Angebote im Browser zusammengesetzt werden. Eine Anfrage an https://www.otto.de mit einem gewöhnlichen Client liefert eine funktionierende Seite von rund 320 KB mit etwa siebzig Script-Tags und keinen Produktlinks im ausgelieferten Markup. Der Katalog wird danach geladen und gerendert, ein Scraper, der nur auf einem HTML-Parser aufbaut, sieht also eine gültige Seite ohne Inhalt.
Kommen die Daten auf Deutsch zurück?+
Damit ist zu rechnen - name und description sind das, was der Shop druckt, und dies ist ein deutscher Shop. Planen Sie Zeichenkodierung und Kollation dieser Spalten entsprechend, und denken Sie daran, dass der angezeigte price deutsche Zahlenformatierung verwendet, während parsed_price genau dafür da ist, gerechnet zu werden.
Warum gibt es zwei Preis- und zwei Identifikator-Spalten?+
Jeweils eine ist zum Lesen und eine zum Rechnen da. price ist der Preis wie angezeigt und parsed_price dieselbe Zahl ohne Formatierung; sku und sku_code werden in dieser Schema-Familie unabhängig gefüllt und wurden schon identisch wie auch verschieden beobachtet, prüfen Sie also beide, bevor Sie einen Verknüpfungsschlüssel wählen. Dieselbe Verdopplung gilt für image und images sowie für url und product_url.
Was bedeutet die Spalte status?+
Sie wird von unserem Exporter geschrieben, nicht von Otto, und meldet, ob die Zeile abgerufen wurde. Eine fehlgeschlagene Zeile kommt trotzdem an und trägt den Grund, Sie können den Export also gegen Ihre Eingabeliste abgleichen, statt später eine stille Lücke zu entdecken. Beide Läufe hinter dieser Seite lesen dort http 404.
Was kostet es?+
Ihre ersten 500 Zeilen sind gratis, einmalig, ohne Karte. Danach sind es 0,002 $ pro Zeile, abgerechnet nach tatsächlich gelieferten Zeilen, ohne Abo und ohne monatlichen Verfall von Guthaben.
In welchen Formaten kann ich exportieren?+
CSV, JSON oder Excel. Die siebzehn Spalten und ihre Reihenfolge sind in allen dreien gleich.

Den Katalog als Tabelle lesen.

Siebzehn Spalten je Produkt, von einem Shop, der sich selbst im Browser zusammensetzt. Ihre ersten 500 Zeilen sind gratis, danach je 0,002 $.

Sofort aktiv · keine Karte erforderlich

Otto-Produktdaten scrapen

Otto ist einer der größten Sortimentshändler Deutschlands und verkauft Kleidung, Möbel, Elektronik und Haushaltswaren über otto.de an die Öffentlichkeit. Dass es ein Endkundenshop ist und kein Fachgroßhandel, ist wichtiger, als es klingt, denn die anderen Kataloge auf diesem Schema - BiggestBook, Vistaprint, Waxie - sind allesamt Fachhandelsseiten, und jede hat ihren eigenen Grund für leere Preisspalten. Ein Händler, der an alle verkauft, veröffentlicht seine Preise für alle. Wir haben die von Otto nicht gemessen, diese Seite verspricht sie also nicht, aber die Begründung jener Seiten überträgt sich nicht hierher, und das sagen wir lieber, als die Familienähnlichkeit etwas andeuten zu lassen, das wir nicht geprüft haben.

Das praktische Hindernis ist, wie die Website gebaut ist. Eine Anfrage an https://www.otto.de von einem gewöhnlichen HTTP-Client liefert eine erfolgreiche Antwort von rund 320 KB mit etwa siebzig Script-Tags und keinen Produktlinks im ausgelieferten Markup - die Angebote werden clientseitig zusammengesetzt, nachdem diese Hülle da ist. Alles, was auf einer HTTP-Bibliothek und einem HTML-Parser aufbaut, liest also eine gültige Seite und findet nichts darin, der häufigste Grund, warum ein selbstgebauter Scraper zu funktionieren scheint und leere Zeilen liefert. Dieser Dienst lädt die Seite so, wie ein Browser es tut, die Produkte sind also da, bevor irgendetwas gelesen wird.

Der Export umfasst siebzehn Spalten je Produkt-URL: query, sku_code, product_url, name, description, parsed_price, price, currency, availability, rating, reviews, images, brand, sku, url, image und status. Vier davon sind Paare - Preis als Anzeige gegen Preis als Zahl, zwei Identifikatorfelder, Hauptbild gegen alle Bilder, angefragte URL gegen kanonische URL - und zu wissen, welche Hälfte man nimmt, bevor man den Importer schreibt, ist der Unterschied zwischen einem sauberen Laden und einer Neufassung. Dass das Identifikator-Paar geprüft gehört, ist nicht theoretisch: in unserem Waxie-Export, der dasselbe Schema nutzt, trugen die beiden Spalten tatsächlich verschiedene Nummern, die des Händlers und die des Herstellers. Rechnen Sie mit deutschem Text in name und description und mit deutscher Zahlenformatierung im angezeigten price.

Wir sind bewusst deutlich, was die Grenzen dessen angeht, was wir zeigen können. Die beiden Läufe hinter dieser Seite, vom 14. und 15. Juli 2026, übermittelten beide eine Platzhalter-Adresse statt einer von Otto, und beide kamen mit einem 404 und jeder Datenspalte leer zurück. Das belegt das Schema - eine Kopfzeile ist eine echte Kopfzeile, auch ohne Daten darunter - und es belegt nichts über Ottos Werte, Sie finden auf dieser Seite also keine Beispielpreise, Artikelnummern oder Bewertungen. Rechtlich enthält eine Produktzeile keine personenbezogenen Daten, was bei einer deutschen Seite meist die erste Frage ist; Beschreibungen und Fotografie sind eine getrennte Frage von Urheberrecht und Weiterverwendung. Otto veröffentlicht eine robots.txt, und für einen allgemeinen Crawler listet sie nur eine Handvoll enger Ausschlüsse statt eines pauschalen, Produktseiten gehören also nicht zu den Pfaden, die sie Crawler zu meiden bittet. Nur öffentlich zugängliche Seiten, keine Tracker Dritter auf der Datenebene, und Exporte werden nach 30 Tagen automatisch gelöscht. Ihre ersten 500 Zeilen sind gratis und brauchen keine Kreditkarte.