10% off ALL new Proxies – CODE: 10pro

Scrape OTTO.de and Zalando Data with a German Mobile Proxy

Scrape OTTO.de and Zalando Data with a German Mobile Proxy

Direct Answer

To scrape public OTTO.de and Zalando product data, route your requests through a real German mobile proxy so each page renders German prices, EUR currency, local sizing and true stock. Use a sticky session for multi-page catalog walks, keep request rates polite, respect each site's robots.txt, and stay on public, non-login data. This is catalog and price monitoring on public data — not a way to defeat anti-bot systems.

[!WARNING]
Authorized use only. This guide covers collecting publicly visible catalog, variant, price and availability data. Respect each site's robots.txt and terms of service, do not touch login-gated pages, customer accounts, wishlists or personal data, and do not use this to bypass anti-bot or platform-security systems. For legitimate market and price monitoring — nothing more. (General information, not legal advice.)


Why OTTO.de and Zalando Are the Two Retail Targets After Amazon

For German e-commerce data, Amazon.de is the obvious first stop — but OTTO and Zalando are the two most valuable targets beyond it. OTTO is one of Germany's largest general online retailers with a broad multi-category marketplace, and Zalando is the dominant fashion platform across the DACH region. If you monitor German pricing, assortment or availability for anything in fashion, apparel, footwear or home, these two sites carry data you cannot get anywhere else.

Both are also aggressively region-aware. Prices, EUR currency, size availability, delivery estimates and which variants are even shown can shift with the visitor's inferred location. Fetch either site from a US or generic cloud range and your dataset stops reflecting what a German shopper sees — you may get a different currency, a redirect, a thinner assortment, or a blocked response. A real German mobile proxy is the vantage point that makes the pages render Germany-true.

Three properties matter here:

  • Region-true rendering. A genuine German mobile IP makes OTTO.de and Zalando serve German prices, EUR, local sizing and true stock — the data you actually want.
  • High IP reputation. Mobile IPs sit behind CGNAT, shared by many real subscribers, so they carry the reputation of ordinary mobile traffic instead of a flagged datacenter block — which is exactly why datacenter proxies get blocked on large retail sites.
  • Network honesty. The request comes from a real German mobile network, so it looks like what it is: ordinary traffic from Germany.

How These Two Sites Are Structured

Knowing the page structure before you write a scraper saves a lot of wasted requests. OTTO and Zalando are built differently, and each rewards a different collection pattern.

Zalando: JSON behind infinite scroll

Zalando category pages load through infinite scroll that pulls a paginated JSON feed in the background. The visible HTML is a React-rendered shell, but the useful catalog data — product name, brand, price, discount, colour variants, sizes and stock flags — arrives as structured JSON. That is a gift for a scraper: reading the JSON feed page by page is cleaner and lighter than parsing rendered HTML, and it maps directly to variant-level data. Product detail pages carry the full size grid and per-size availability, again in embedded structured data.

OTTO: classic pagination and product pages

OTTO uses more classic numbered pagination on its category listings, with server-rendered product tiles and dedicated product detail pages. Variant data — colour, size, price per variant, and the in-stock flag — lives on the product page, often in embedded structured data (JSON-LD Product/Offer) that is far more durable to parse than shifting CSS classes. Where a page hydrates client-side content after load, a headless browser fills the gap.

The practical takeaway: prefer structured JSON or JSON-LD over brittle CSS selectors on both sites. It survives redesigns and gives you clean variant, price and availability fields without guesswork.

Field Public? Notes
Product name, brand, ID/SKU Yes On the listing and product page
Price, currency, discount Yes The core of price monitoring
Colour and size variants Yes Variant-level catalog data
Per-variant availability / in-stock Yes Public, region-dependent
Category structure / breadcrumbs Yes Useful for assortment mapping
Individual customer reviews with names No Personal data — out of scope
Anything behind login (cart, wishlist, orders) No Login-gated — never
Bypassing CAPTCHAs or anti-bot systems No Not an authorized use

Sticky Sessions for Multi-Page Catalog Walks

A category on either site spans dozens or hundreds of pages. The rule is simple: one sticky German IP per catalog walk. A sticky session keeps the same German IP from the first page of a category to the last, so the whole sequence looks like one shopper browsing — consistent, coherent, and easy for the site to serve normally.

This matters more on Zalando's infinite-scroll feed than almost anywhere: each scroll fetch continues a session, and swapping IP mid-sequence fragments the run and can reset pagination state. On OTTO's numbered pages the same logic holds — hold the IP steady across the pagination, then rotate only when you move to a separate job or a different category batch.

GermanProxy.io supports both sticky sessions and on-demand or time-based rotation, so the pattern is: sticky within a walk, rotate between walks. Use rotation to spread a large multi-category crawl across different German IPs over time, never to switch IP inside a single sequence.


Polite Cadence and robots.txt

Scaling a retail-data pipeline is a discipline problem, not a stealth problem. The goal is accurate, repeatable data without loading down the target:

  • Read robots.txt first on both otto.de and zalando.de, and honour it. If a path is disallowed, it is out of scope — full stop.
  • Pace your requests. Modest, human-plausible rates — a few requests per minute per IP, not a flood — protect both the target server and your data quality. A steady, polite cadence gets served normally; a burst invites a 429 Too Many Requests or worse.
  • Match session to job. One sticky German IP per multi-page walk; rotate between jobs.
  • Prefer the light path. Reading Zalando's JSON feed or OTTO's JSON-LD is far lighter than rendering full pages with images — it keeps you well inside fair-use 20 GB/day and reduces load on the site.
  • Cache and de-duplicate so you never re-fetch a page you already have within the monitoring window.

A German mobile IP fixes the region and reputation side, but it does not disguise a bare HTTP client: both sites fingerprint TLS, HTTP/2 and headers, so a plain library call can return a 503 or an interstitial check. Send a realistic Accept-Language: de-DE header, pace yourself, and reach for a headless browser where a page genuinely needs client-side rendering. None of this is about defeating detection — it is about being a clean, polite client using a real German mobile IP.


A Minimal Collection Pattern

The building block is the same for both sites: send each request through your German mobile endpoint, ask for the German locale, and parse the structured data. This mirrors the approach in the Amazon.de price-scraping walkthrough — the target changes, the discipline does not.

For a request-based pipeline in Python, the mobile proxy with Python guide shows the full setup: point requests (or httpx) at the HTTP proxy URL from your dashboard, set Accept-Language: de-DE, and pull the JSON-LD or feed JSON rather than scraping CSS classes. For Zalando, follow the pagination of the JSON feed with a sticky session; for OTTO, iterate the numbered category pages and read the Product/Offer structured data on each detail page. Confirm the very first response actually returned German prices and EUR before you trust the run — loading our traffic check tells you the exit IP really resolves to Germany.

When a page hydrates its variant grid client-side, swap the plain request for a headless browser for that step, then go back to the light JSON path for the bulk of the walk. Keep images off unless you specifically need them — HTML/JSON-only requests are a fraction of the bandwidth.


Feeding a Wider Monitoring Picture

OTTO and Zalando are two sources in a larger German retail-data picture. The same German mobile setup that walks their catalogs also drives a price-monitoring scraper that tracks changes over time, and the Amazon.de workflow rounds out the three biggest German retail targets into one comparable dataset. Collect public catalog, variant and price data carefully from each, stay within every platform's terms and robots.txt, keep personal data out entirely (GDPR), and let the numbers drive the decision.


FAQ

Is scraping OTTO.de and Zalando product data legal?

Collecting publicly visible catalog, variant, price and availability data is commonly regarded as lower-risk in the EU when you respect robots.txt and avoid personal data or login-gated content — but it is not automatically permitted. Each site's terms of service restrict automated access regardless, and the German UWG and the EU Database Directive set further limits. Keep to public pages, review those terms, and get your own legal advice for anything ambiguous. This is general information, not legal advice.

Why use a German mobile proxy for OTTO and Zalando instead of a datacenter IP?

Both sites serve region-specific prices, currency, sizing and stock, and datacenter IP ranges carry low IP reputation on large fashion retailers. A real German mobile IP comes from a genuine German mobile network behind CGNAT, so pages render the same prices and availability a German shopper sees, and the traffic reads as ordinary mobile traffic rather than a datacenter range.

How do I walk a full category across many pages without breaking the crawl?

Use a sticky session so one German IP carries the whole category walk from page one to the last page. Zalando paginates through infinite scroll that loads a JSON feed, and OTTO uses classic numbered pages — in both cases a stable IP keeps the sequence consistent. Rotate between separate jobs, not mid-crawl.


Related guides

Start Collecting Germany-True Retail Data

Real German 5G mobile IPs, dedicated or shared, with HTTP/SOCKS5, sticky sessions and on-demand rotation — fair-use 20 GB/day, from a transparent EU-based provider rated 4.8★ on Trustpilot. Browse the German mobile proxy plans and point your OTTO and Zalando pipeline at a genuine German mobile endpoint.


Get a German mobile proxy: Real 4G/5G IPs from Germany, fair-use 20 GB/day — see German 4G/5G mobile proxy options or start small with a shared 5G proxy.

Telegram Support
Nach oben scrollen