~/ecommerce/sephora-scraper

Sephora Scraper (Mondial)

Acteur Apify qui extrait les données produits complètes de Sephora — variantes, prix, images, ingrédients et avis — depuis des boutiques Sephora aux États-Unis, au Canada, sur 9 marchés de l’UE, 6 marchés du Moyen-Orient, au Royaume-Uni, en Inde et sur 10 marchés Asie-Pacifique, dans un schéma normalisé unique.

beauté PythonCrawlee États-UnisCanadaFranceItalieAllemagneEspagnePologneRépublique tchèqueGrèceRoumaniePortugalÉmirats arabes unisArabie saouditeBahreïnOmanKoweïtQatarRoyaume-UniIndeNouvelle-ZélandeAustralieSingapourMalaisieThaïlandeIndonésiePhilippinesHong KongTaïwanBrunei
proooxy/sephora-scraper — specs
catégorieecommerce / beauté
langagePython
stackPython, Crawlee
marchésÉtats-Unis, Canada, France, Italie, Allemagne, Espagne, Pologne, République tchèque, Grèce, Roumanie, Portugal, Émirats arabes unis, Arabie saoudite, Bahreïn, Oman, Koweït, Qatar, Royaume-Uni, Inde, Nouvelle-Zélande, Australie, Singapour, Malaisie, Thaïlande, Indonésie, Philippines, Hong Kong, Taïwan, Brunei
sortieJSON propre, prêt pour le RAG

fonctionnalités clés

Un seul acteur pour les États-Unis, le Canada, 9 marchés UE, 6 marchés du Moyen-Orient, le Royaume-Uni, l’Inde et 10 marchés APAC

Marché détecté automatiquement — collez n’importe quelle URL sephora.* et le dispatcher la route vers le bon module

Runs multi-marchés mixtes — des URLs US + EU + SEA dans une seule liste startUrls, diffusées vers un dataset unique balisé avec `market`

Tarification correcte par locale — la devise propre à chaque boutique (24 au total, de l’USD et l’EUR à l’AED et l’INR), telle que renvoyée par la couche de localisation propre à Sephora

Schéma normalisé — chaque marché produit la même structure `source / brand / title / options / variants / medias / stats`

Isolation des sessions par marché — l’état d’authentification ne peut pas se contaminer entre régions

Disjoncteur global — 50 échecs consécutifs interrompent le run pour éviter de gaspiller du calcul sur une cible hors service

cas d’usage

  • Intelligence tarifaire pan-régionale sur les marchés beauté US, UE et APAC
  • Suivi de la disponibilité produit et de l’assortiment entre marchés
  • Analyse concurrentielle pour les marques se lançant sur de nouvelles régions Sephora
  • Comparaisons d’ingrédients entre formulations régionales
  • Suivi des avis et notes — y compris les signaux de wishlist SEA et les résumés de sentiment IA US
  • Audits de tarification fidélité / membership par marché

paramètres d’entrée

ParamètreTypeRequisDescription
startUrlsarrayrequisURLs de produits ou de catégories depuis n’importe quelle boutique sephora.*. Le marché est détecté automatiquement à partir du nom d’hôte.
marketstringoptionnelSurcharge de marché optionnelle (us, eu-fr, eu-it, eu-de, eu-es, eu-pl, eu-ro, eu-pt, eu-cz, eu-gr, mena-ae, mena-sa, mena-bh, mena-om, mena-kw, mena-qa, uk, in, sea-nz, sea-au, sea-sg, sea-my, sea-th, sea-id, sea-ph, sea-hk, sea-tw, sea-bn).
localestringoptionnelLocale BCP 47 optionnelle (ex. fr-FR, en-NZ) — remplace le marché par défaut.
categoryIdsarrayoptionnelUE, Moyen-Orient, Royaume-Uni et Inde. ID de catégorie dans le format propre à chaque marché (ex. C479 sur les boutiques UE) — alternative au collage d’URLs de catégorie.
onlyNewProductsbooleanoptionnelUniquement les produits ajoutés récemment : un filtre côté serveur sur US/Canada et FR, IT, DE, ES, PL, RO, PT ; des pages de listing triées du plus récent au plus ancien sur SEA et en Inde. Non pris en charge ailleurs.
newProductsPageLimitnumberoptionnelPages de listing par catégorie quand onlyNewProducts s’exécute sur SEA ou en Inde. Par défaut 3.
advancedFilterstringoptionnelListings de catégorie US/Canada uniquement : une expression de filtrage brute telle que filters[isNew]=true.
proxyobjectoptionnelConfiguration du proxy Apify. Résidentiel fortement recommandé ; épinglez apifyProxyCountry sur le marché cible.
maxConcurrencynumberoptionnelRequêtes concurrentes. Par défaut 5. US : 2-5. EU : 3. SEA : 8-16.
maxRequestsPerCrawlnumberoptionnelPlafond global strict tous marchés confondus. 0 = illimité.

Marchés supportés

RégionID de marchéPaysDeviseNom d’hôte
AmériquesusÉtats-UnisUSDsephora.com
AmériquesusCanadaCADsephora.ca
UEeu-frFranceEURsephora.fr
UEeu-itItalieEURsephora.it
UEeu-deAllemagneEURsephora.de
UEeu-esEspagneEURsephora.es
UEeu-plPolognePLNsephora.pl
UEeu-czRépublique tchèqueCZKsephora.cz
UEeu-grGrèceEURsephora.gr
UEeu-roRoumanieRONsephora.ro
UEeu-ptPortugalEURsephora.pt
Moyen-Orientmena-aeÉmirats arabes unisAEDsephora.me/ae-en
Moyen-Orientmena-saArabie saouditeSARsephora.me/sa-en
Moyen-Orientmena-bhBahreïnBHDsephora.me/bh-en
Moyen-Orientmena-omOmanOMRsephora.me/om-en
Moyen-Orientmena-kwKoweïtKWDsephora.me/kw-en
Moyen-Orientmena-qaQatarQARsephora.me/qa-en
Royaume-UniukRoyaume-UniGBPsephora.co.uk
IndeinIndeINRsephora.in
APACsea-nzNouvelle-ZélandeNZDsephora.nz
APACsea-auAustralieAUDsephora.com.au
APACsea-sgSingapourSGDsephora.sg
APACsea-myMalaisieMYRsephora.com.my
APACsea-thThaïlandeTHBsephora.co.th
APACsea-idIndonésieIDRsephora.co.id
APACsea-phPhilippinesPHPsephora.ph
APACsea-hkHong KongHKDsephora.hk
APACsea-twTaïwanTWDsephora.tw
APACsea-bnBruneiBNDsephora.bn

Exemple de sortie

 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}

Astuces

  • Épinglez le pays du proxy sur le marché cible. Une sortie résidentielle dans un pays non concordant est la principale source de 403. Définissez apifyProxyCountry sur le code ISO de la boutique (US, FR, NZ, etc.).
  • Testez d’abord en mode smoke-test. Définissez maxRequestsPerCrawl=10 avant votre premier run de production sur un nouveau marché.
  • Ajustez la concurrence par région. US : 2-5. EU : 3. SEA : 8-16. Chaque marché dispose de son propre sémaphore dans les runs mixtes.

faq

Quelles boutiques Sephora ce scraper supporte-t-il ?
US (sephora.com), Canada (sephora.ca), 9 marchés UE (FR, IT, DE, ES, PL, CZ, GR, RO, PT), 6 marchés du Moyen-Orient sur sephora.me (AE, SA, BH, OM, KW, QA), le Royaume-Uni (sephora.co.uk), l’Inde (sephora.in), et 10 marchés APAC (NZ, AU, SG, MY, TH, ID, PH, HK, TW, BN). Le marché est détecté automatiquement à partir de l’URL — le nom d’hôte, ou le préfixe de chemin façon /ae-en/ sur sephora.me — donc les runs multi-marchés ne nécessitent aucun input supplémentaire.
Puis-je scraper plusieurs marchés en un seul run ?
Oui. Mixez des URLs sephora.com, sephora.fr et sephora.nz dans une seule liste startUrls. Le dispatcher les regroupe par marché, exécute chaque module en parallèle avec l’authentification adaptée au marché, et balise chaque élément du dataset avec un champ `market`.
Comment le scraper gère-t-il la protection anti-bot ?
Tous les marchés passent par des proxies résidentiels, avec de nouvelles tentatives automatiques sur une session neuve quand une requête est bloquée. Épinglez le pays du proxy sur le marché de la boutique pour le meilleur taux de réussite.
Mes configurations de run US v1.x existantes continueront-elles de fonctionner ?
Oui. Les inputs antérieurs à 2.0 — startUrls, maxConcurrency, proxy, maxRequestsPerCrawl — se comportent à l’identique. Le seul changement en sortie est une nouvelle clé `market` sur chaque élément, un changement additif sans impact.
Pourquoi certains champs sont-ils null dans les données SEA ?
L’API de Sephora SEA n’expose pas de compteur `lovesCount`, donc les éléments APAC ont `stats.lovesCount = null`. Chaque variante possède à la place un champ booléen `wishlisted`. Inversement, `sentiments` (résumés d’avis générés par IA) et `source.crawlUrl` sont réservés aux US.
Ai-je besoin de tokens API ou de comptes séparés par marché ?
Non. Votre token API Apify existant fonctionne sans changement. L’acteur gère les tokens invité par marché en interne — aucun identifiant requis pour EU/SEA, et US fonctionne avec les proxies résidentiels Apify standard.

similaires dans ~/ecommerce

Exécutez Sephora Scraper (Mondial), ou obtenez un projet sur mesure

Commencez à extraire sur Apify en quelques minutes, ou engagez-moi pour construire un scraper sur mesure et un pipeline RAG adaptés exactement à votre source et à votre schéma.

exécuter sur Apify obtenir des données sur mesure