~/ecommerce/sephora-scraper

Sephora Scraper (Weltweit)

Apify-Actor, der vollständige Sephora-Produktdaten extrahiert — Varianten, Preise, Bilder, Inhaltsstoffe und Rezensionen — aus 21 Storefronts in den USA, Kanada, 9 EU-Märkten und 10 Asien-Pazifik-Märkten, in einem einzigen normalisierten Schema.

Beauty >99% Erfolgsquote PythonCrawleecurl_cffi USAKanadaFrankreichItalienDeutschlandSpanienPolenTschechienGriechenlandRumänienPortugalNeuseelandAustralienSingapurMalaysiaThailandIndonesienPhilippinenHongkongTaiwanBrunei
proooxy/sephora-scraper — Steckbrief
Kategorieecommerce / Beauty
SprachePython
StackPython, Crawlee, curl_cffi
MärkteUSA, Kanada, Frankreich, Italien, Deutschland, Spanien, Polen, Tschechien, Griechenland, Rumänien, Portugal, Neuseeland, Australien, Singapur, Malaysia, Thailand, Indonesien, Philippinen, Hongkong, Taiwan, Brunei
Erfolgsquote>99%
Outputsauberes, RAG-fertiges JSON

Hauptfunktionen

21 Storefronts in einem Actor — USA, Kanada, 9 EU-Märkte und 10 APAC-Märkte, abgedeckt von einer einzigen SKU

Automatische Markterkennung — eine beliebige sephora.*-URL einfügen, der Dispatcher leitet sie ans richtige Modul weiter

Gemischte Multi-Markt-Runs — US- + EU- + SEA-URLs in einer startUrls-Liste, gestreamt in ein einziges Dataset, getaggt mit `market`

Locale-korrekte Preise — NZD, EUR, USD, AUD und 17 weitere Währungen, geliefert von Sephoras eigener Lokalisierungsschicht

Normalisiertes Schema — jeder Markt liefert dieselbe `source / brand / title / options / variants / medias / stats`-Struktur

Session-Isolation pro Markt — Auth-Status kann nicht zwischen Regionen überspringen

Globaler Circuit Breaker — 50 aufeinanderfolgende Fehlschläge brechen den Run ab, um kein Compute an einem ausgefallenen Ziel zu verbrennen

Anwendungsfälle

  • Regionsübergreifende Preis-Intelligence über US-, EU- und APAC-Beauty-Märkte
  • Marktübergreifendes Monitoring von Produktverfügbarkeit und Sortiment
  • Wettbewerbsanalyse für Marken, die in neue Sephora-Regionen starten
  • Inhaltsstoffvergleiche über regionale Rezepturen hinweg
  • Tracking von Rezensionen und Bewertungen — inklusive SEA-Wishlist-Signalen und US-KI-Sentiment-Zusammenfassungen
  • Audits von Loyalty-/Mitgliedschaftspreisen je Markt

Eingabeparameter

ParameterTypErforderlichBeschreibung
startUrlsarrayerforderlichProdukt- oder Kategorie-URLs von jeder beliebigen sephora.*-Storefront. Der Markt wird automatisch anhand des Hostnamens erkannt.
marketstringoptionalOptionale Markt-Überschreibung (us, eu-fr, eu-it, eu-de, eu-es, eu-pl, eu-cz, eu-gr, eu-ro, eu-pt, sea-nz, sea-au, sea-sg, sea-my, sea-th, sea-id, sea-ph, sea-hk, sea-tw, sea-bn).
localestringoptionalOptionale BCP-47-Locale (z. B. fr-FR, en-NZ) — überschreibt den Markt-Standardwert.
categoryIdsarrayoptionalNur EU. SFCC-Kategorie-IDs wie C479 — Alternative zum Einfügen von Kategorie-URLs.
proxyobjectoptionalApify-Proxy-Konfiguration. Residential dringend empfohlen; apifyProxyCountry auf den Zielmarkt festlegen.
maxConcurrencynumberoptionalGleichzeitige Anfragen. Standard 5. US: 2–5. EU: 3. SEA: 8–16.
maxRequestsPerCrawlnumberoptionalGlobale harte Obergrenze über alle Märkte hinweg. 0 = unbegrenzt.

Unterstützte Märkte

RegionMarkt-IDLandWährungHostname
AmerikausUSAUSDsephora.com
AmerikausKanadaCADsephora.ca
EUeu-frFrankreichEURsephora.fr
EUeu-itItalienEURsephora.it
EUeu-deDeutschlandEURsephora.de
EUeu-esSpanienEURsephora.es
EUeu-plPolenPLNsephora.pl
EUeu-czTschechienCZKsephora.cz
EUeu-grGriechenlandEURsephora.gr
EUeu-roRumänienRONsephora.ro
EUeu-ptPortugalEURsephora.pt
APACsea-nzNeuseelandNZDsephora.nz
APACsea-auAustralienAUDsephora.com.au
APACsea-sgSingapurSGDsephora.sg
APACsea-myMalaysiaMYRsephora.com.my
APACsea-thThailandTHBsephora.co.th
APACsea-idIndonesienIDRsephora.co.id
APACsea-phPhilippinenPHPsephora.ph
APACsea-hkHongkongHKDsephora.hk
APACsea-twTaiwanTWDsephora.tw
APACsea-bnBruneiBNDsephora.bn

Beispiel-Output

 1{
 2  "market": "sea-nz",
 3  "source": {
 4    "id": 58792,
 5    "canonicalUrl": "https://www.sephora.nz/products/rare-beauty-true-to-myself-natural-matte-longwear-foundation",
 6    "retailer": "SEPHORA",
 7    "currency": "NZD"
 8  },
 9  "brand": "Rare Beauty",
10  "title": "True To Myself Natural Matte Longwear Foundation",
11  "description": "<p>A self-priming and self-setting foundation...</p>",
12  "ingredients": "Aqua/Water, Cyclopentasiloxane, Glycerin...",
13  "currentSku": "770225",
14  "categories": ["makeup/face/foundation"],
15  "options": [
16    { "name": "shade", "id": "66488", "values": [{"value": "1 Fair Neutral", "orderable": true}] }
17  ],
18  "variants": [
19    {
20      "id": "276343",
21      "sku": "770225",
22      "price": { "current": 77.0, "original": 77.0, "stockStatus": "IN_STOCK" },
23      "options": [{"name": "shade", "value": "1 Fair Neutral"}],
24      "highlights": ["NEW", "Only at Sephora"],
25      "wishlisted": null
26    }
27  ],
28  "medias": [{ "url": "https://www.sephora.nz/.../foundation-shade.jpg", "type": "image" }],
29  "stats": { "reviewCount": 971, "rating": 4.8, "lovesCount": null }
30}

Tipps

  • Proxy-Land auf den Zielmarkt festlegen. Ein Residential-Exit in einem falschen Land ist die mit Abstand größte Quelle für 403er von Sephoras Akamai-Schicht. apifyProxyCountry auf den ISO-Code der Storefront setzen (US, FR, NZ usw.).
  • Zuerst einen Smoke-Test durchführen. maxRequestsPerCrawl=10 setzen, bevor der erste produktive Run in einem neuen Markt gestartet wird.
  • Concurrency pro Region abstimmen. US: 2–5. EU: 3. SEA: 8–16. Jeder Markt bekommt in gemischten Runs sein eigenes Semaphore.

FAQ

Welche Sephora-Storefronts unterstützt dieser Scraper?
21 Storefronts: USA (sephora.com), Kanada (sephora.ca), 9 EU-Märkte (FR, IT, DE, ES, PL, CZ, GR, RO, PT) und 10 APAC-Märkte (NZ, AU, SG, MY, TH, ID, PH, HK, TW, BN). Der Markt wird automatisch anhand des Hostnamens erkannt — beim Mischen von Märkten sind keine Input-Änderungen nötig.
Kann ich mehrere Märkte in einem einzigen Run scrapen?
Ja. sephora.com-, sephora.fr- und sephora.nz-URLs in einer startUrls-Liste mischen. Der Dispatcher gruppiert sie nach Markt, führt jedes Modul gleichzeitig mit marktgerechter Auth aus und taggt jedes Dataset-Item mit einem `market`-Feld.
Wie geht der Scraper mit Anti-Bot-Schutz um?
Er nutzt Residential Proxys für alle Märkte und curl_cffi für browserechtes TLS-Fingerprinting bei EU- und SEA-Traffic, um Akamai zu umgehen. US-Traffic läuft über Crawlees HttpCrawler mit einem Session-Pool, der bei 403/429 rotiert.
Funktionieren meine bestehenden v1.x-US-Run-Konfigurationen weiter?
Ja. Pre-2.0-Inputs — startUrls, maxConcurrency, proxy, maxRequestsPerCrawl — verhalten sich identisch. Die einzige Output-Änderung ist ein neuer `market`-Key bei jedem Item, eine rein additive Änderung.
Warum sind manche Felder in SEA-Daten null?
Sephora SEAs API stellt keinen `lovesCount`-Zähler bereit, daher haben APAC-Items `stats.lovesCount = null`. Stattdessen hat jede Variante ein boolesches `wishlisted`-Feld. Umgekehrt sind `sentiments` (KI-Rezensions-Zusammenfassungen) und `source.crawlUrl` nur für die USA verfügbar.
Brauche ich separate API-Tokens oder Accounts pro Markt?
Nein. Das bestehende Apify-API-Token funktioniert unverändert. Der Actor verwaltet Guest-Tokens pro Markt intern — für EU/SEA sind keine Zugangsdaten nötig, und die USA laufen über Standard-Apify-Residential-Proxys.

verwandt in ~/ecommerce

Sephora Scraper (Weltweit) ausführen oder ein individuelles Projekt anfragen

In wenigen Minuten mit der Extraktion auf Apify starten, oder mich für einen maßgeschneiderten Scraper und eine RAG-Pipeline exakt nach Quelle und Schema beauftragen.

auf Apify ausführen individuelle Daten anfragen