~/ecommerce/sephora-scraper

Sephora Scraper (Global)

Ator Apify que extrai dados completos de produtos da Sephora — variantes, preços, imagens, ingredientes e reviews — de lojas da Sephora nos EUA, Canadá, 9 mercados da UE, 6 mercados do Oriente Médio, no Reino Unido, na Índia e 10 mercados da Ásia-Pacífico, em um único esquema normalizado.

beleza PythonCrawlee Estados UnidosCanadáFrançaItáliaAlemanhaEspanhaPolôniaRepública TchecaGréciaRomêniaPortugalEmirados Árabes UnidosArábia SauditaBahreinOmãKuwaitCatarReino UnidoÍndiaNova ZelândiaAustráliaSingapuraMalásiaTailândiaIndonésiaFilipinasHong KongTaiwanBrunei
proooxy/sephora-scraper — especificações
categoriaecommerce / beleza
linguagemPython
stackPython, Crawlee
mercadosEstados Unidos, Canadá, França, Itália, Alemanha, Espanha, Polônia, República Tcheca, Grécia, Romênia, Portugal, Emirados Árabes Unidos, Arábia Saudita, Bahrein, Omã, Kuwait, Catar, Reino Unido, Índia, Nova Zelândia, Austrália, Singapura, Malásia, Tailândia, Indonésia, Filipinas, Hong Kong, Taiwan, Brunei
saídaJSON limpo e pronto para RAG

principais recursos

Um único ator para os EUA, Canadá, 9 mercados da UE, 6 mercados do Oriente Médio, o Reino Unido, a Índia e 10 mercados APAC

Mercado detectado automaticamente — cole qualquer URL sephora.* e o dispatcher a encaminha para o módulo correto

Execuções multi-mercado combinadas — URLs de EUA + UE + SEA em uma única lista startUrls, transmitidas para um único dataset marcado com `market`

Precificação correta por locale — a moeda própria de cada loja (24 no total, de USD e EUR a AED e INR), como retornada pela própria camada de localização da Sephora

Esquema normalizado — todo mercado emite a mesma estrutura `source / brand / title / options / variants / medias / stats`

Isolamento de sessão por mercado — o estado de autenticação não pode se contaminar entre regiões

Circuit breaker global — 50 falhas consecutivas abortam a execução para evitar gastar computação em um alvo fora do ar

casos de uso

  • Inteligência de preços pan-regional entre os mercados de beleza dos EUA, UE e APAC
  • Monitoramento de disponibilidade e sortimento de produtos entre mercados
  • Análise competitiva para marcas lançando em novas regiões da Sephora
  • Comparações de ingredientes entre formulações regionais
  • Rastreamento de reviews e avaliações — incluindo sinais de wishlist do SEA e resumos de sentimento por IA dos EUA
  • Auditorias de precificação de fidelidade/membership por mercado

parâmetros de entrada

ParâmetroTipoObrigatórioDescrição
startUrlsarrayobrigatórioURLs de produto ou categoria de qualquer loja sephora.*. O mercado é detectado automaticamente pelo hostname.
marketstringopcionalSubstituição opcional de mercado (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).
localestringopcionalLocale BCP 47 opcional (ex.: fr-FR, en-NZ) — substitui o padrão do mercado.
categoryIdsarrayopcionalUE, Oriente Médio, Reino Unido e Índia. IDs de categoria no formato próprio de cada mercado (ex.: C479 nas lojas da UE) — alternativa a colar URLs de categoria.
onlyNewProductsbooleanopcionalSomente produtos adicionados recentemente: um filtro do lado do servidor em EUA/Canadá e FR, IT, DE, ES, PL, RO, PT; páginas de listagem com os mais novos primeiro em SEA e Índia. Não suportado nos demais mercados.
newProductsPageLimitnumberopcionalPáginas de listagem por categoria quando onlyNewProducts roda em SEA ou Índia. Padrão 3.
advancedFilterstringopcionalSomente listagens de categoria dos EUA/Canadá: uma expressão de refinamento bruta como filters[isNew]=true.
proxyobjectopcionalConfiguração de proxy do Apify. Residencial fortemente recomendado; fixe apifyProxyCountry no mercado-alvo.
maxConcurrencynumberopcionalRequisições simultâneas. Padrão 5. EUA: 2-5. UE: 3. SEA: 8-16.
maxRequestsPerCrawlnumberopcionalLimite rígido global entre todos os mercados. 0 = ilimitado.

Mercados suportados

RegiãoID do MercadoPaísMoedaHostname
AméricasusEstados UnidosUSDsephora.com
AméricasusCanadáCADsephora.ca
UEeu-frFrançaEURsephora.fr
UEeu-itItáliaEURsephora.it
UEeu-deAlemanhaEURsephora.de
UEeu-esEspanhaEURsephora.es
UEeu-plPolôniaPLNsephora.pl
UEeu-czRepública TchecaCZKsephora.cz
UEeu-grGréciaEURsephora.gr
UEeu-roRomêniaRONsephora.ro
UEeu-ptPortugalEURsephora.pt
Oriente Médiomena-aeEmirados Árabes UnidosAEDsephora.me/ae-en
Oriente Médiomena-saArábia SauditaSARsephora.me/sa-en
Oriente Médiomena-bhBahreinBHDsephora.me/bh-en
Oriente Médiomena-omOmãOMRsephora.me/om-en
Oriente Médiomena-kwKuwaitKWDsephora.me/kw-en
Oriente Médiomena-qaCatarQARsephora.me/qa-en
Reino UnidoukReino UnidoGBPsephora.co.uk
ÍndiainÍndiaINRsephora.in
APACsea-nzNova ZelândiaNZDsephora.nz
APACsea-auAustráliaAUDsephora.com.au
APACsea-sgSingapuraSGDsephora.sg
APACsea-myMalásiaMYRsephora.com.my
APACsea-thTailândiaTHBsephora.co.th
APACsea-idIndonésiaIDRsephora.co.id
APACsea-phFilipinasPHPsephora.ph
APACsea-hkHong KongHKDsephora.hk
APACsea-twTaiwanTWDsephora.tw
APACsea-bnBruneiBNDsephora.bn

Exemplo de Saída

 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}

Dicas

  • Fixe o país do proxy no mercado-alvo. Uma saída residencial em um país incompatível é a maior fonte isolada de 403s. Defina apifyProxyCountry para o código ISO da loja (US, FR, NZ, etc.).
  • Faça um smoke test primeiro. Defina maxRequestsPerCrawl=10 antes da sua primeira execução de produção em um novo mercado.
  • Ajuste a concorrência por região. EUA: 2-5. UE: 3. SEA: 8-16. Cada mercado recebe seu próprio semáforo em execuções mistas.

faq

Quais lojas da Sephora esse scraper suporta?
EUA (sephora.com), Canadá (sephora.ca), 9 mercados da UE (FR, IT, DE, ES, PL, CZ, GR, RO, PT), 6 mercados do Oriente Médio em sephora.me (AE, SA, BH, OM, KW, QA), o Reino Unido (sephora.co.uk), a Índia (sephora.in) e 10 mercados APAC (NZ, AU, SG, MY, TH, ID, PH, HK, TW, BN). O mercado é detectado automaticamente a partir da URL — o hostname, ou o prefixo de caminho no estilo /ae-en/ em sephora.me — então execuções com mercados mistos não exigem nenhum input extra.
Posso raspar múltiplos mercados em uma única execução?
Sim. Misture URLs de sephora.com, sephora.fr e sephora.nz em uma única lista startUrls. O dispatcher as agrupa por mercado, executa cada módulo simultaneamente com a autenticação apropriada para cada mercado, e marca cada item do dataset com um campo `market`.
Como o scraper lida com proteção anti-bot?
Todos os mercados passam por proxies residenciais, com novas tentativas automáticas em uma sessão nova quando uma requisição é bloqueada. Fixe o país do proxy no mercado da loja para a melhor taxa de sucesso.
Minhas configurações de execução v1.x dos EUA existentes vão continuar funcionando?
Sim. Os inputs pré-2.0 — startUrls, maxConcurrency, proxy, maxRequestsPerCrawl — se comportam de forma idêntica. A única mudança na saída é uma nova chave `market` em cada item, uma mudança aditiva e não destrutiva.
Por que alguns campos estão nulos nos dados do SEA?
A API da Sephora SEA não expõe um contador `lovesCount`, então os itens APAC têm `stats.lovesCount = null`. Em vez disso, cada variante tem um campo booleano `wishlisted`. Por outro lado, `sentiments` (resumos de reviews por IA) e `source.crawlUrl` são exclusivos dos EUA.
Preciso de tokens de API ou contas separadas por mercado?
Não. Seu token de API do Apify existente funciona sem alterações. O ator gerencia os guest tokens por mercado internamente — nenhuma credencial é necessária para UE/SEA, e os EUA funcionam com proxies residenciais padrão do Apify.

relacionados em ~/ecommerce

Execute Sephora Scraper (Global) ou solicite um projeto personalizado

Comece a extrair dados no Apify em minutos, ou me contrate para desenvolver um scraper sob medida e um pipeline de RAG para sua fonte e esquema exatos.

executar no Apify obter dados personalizados