~/ecommerce/sephora-scraper

Sephora Scraper (Глобально)

Актор Apify, который извлекает полные данные о товарах Sephora — варианты, цены, изображения, состав и отзывы — из витрин Sephora в США, Канаде, на 9 рынках ЕС, 6 рынках Ближнего Востока, в Великобритании, Индии и на 10 рынках Азиатско-Тихоокеанского региона, по единой нормализованной схеме.

красота PythonCrawlee СШАКанадаФранцияИталияГерманияИспанияПольшаЧехияГрецияРумынияПортугалияОАЭСаудовская АравияБахрейнОманКувейтКатарВеликобританияИндияНовая ЗеландияАвстралияСингапурМалайзияТаиландИндонезияФилиппиныГонконгТайваньБруней
proooxy/sephora-scraper — характеристики
категорияecommerce / красота
языкPython
стекPython, Crawlee
рынкиСША, Канада, Франция, Италия, Германия, Испания, Польша, Чехия, Греция, Румыния, Португалия, ОАЭ, Саудовская Аравия, Бахрейн, Оман, Кувейт, Катар, Великобритания, Индия, Новая Зеландия, Австралия, Сингапур, Малайзия, Таиланд, Индонезия, Филиппины, Гонконг, Тайвань, Бруней
выводчистый JSON, готовый к RAG

ключевые возможности

Один актор для США, Канады, 9 рынков ЕС, 6 рынков Ближнего Востока, Великобритании, Индии и 10 рынков APAC

Автоопределение рынка — вставьте любой URL sephora.* и диспетчер направит его в нужный модуль

Смешанные мультирыночные запуски — URL US + EU + SEA в одном списке startUrls, потоково записываются в единый датасет с меткой `market`

Корректные локализованные цены — собственная валюта каждой витрины (всего 24 — от USD и EUR до AED и INR), как ее возвращает собственный слой локализации Sephora

Нормализованная схема — каждый рынок выдает одну и ту же структуру `source / brand / title / options / variants / medias / stats`

Изоляция сессий по рынкам — состояние авторизации не может «перетекать» между регионами

Глобальный circuit breaker — 50 последовательных сбоев прерывают запуск, чтобы не тратить вычисления впустую на недоступную цель

сценарии использования

  • Панрегиональная аналитика цен на рынках красоты США, ЕС и APAC
  • Мониторинг наличия и ассортимента товаров между рынками
  • Конкурентный анализ для брендов, выходящих на новые регионы Sephora
  • Сравнение состава между региональными рецептурами
  • Отслеживание отзывов и рейтингов — включая сигналы избранного (wishlist) SEA и AI-сводки тональности отзывов для US
  • Аудит цен по программам лояльности/членства на каждом рынке

входные параметры

ПараметрТипОбязательныйОписание
startUrlsarrayобязательноURL товаров или категорий с любой витрины sephora.*. Рынок определяется автоматически по хосту.
marketstringопциональноОпциональное переопределение рынка (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).
localestringопциональноОпциональная локаль BCP 47 (например, fr-FR, en-NZ) — переопределяет рынок по умолчанию.
categoryIdsarrayопциональноEU, Ближний Восток, Великобритания и Индия. ID категорий в формате конкретного рынка (например, C479 на витринах EU) — альтернатива вставке URL категорий.
onlyNewProductsbooleanопциональноТолько недавно добавленные товары: серверный фильтр на US/Canada и FR, IT, DE, ES, PL, RO, PT; листинг с сортировкой «сначала новые» на SEA и в Индии. Не поддерживается на других рынках.
newProductsPageLimitnumberопциональноКоличество страниц листинга на категорию, когда onlyNewProducts работает на SEA или в Индии. По умолчанию 3.
advancedFilterstringопциональноТолько для листингов категорий US/Canada: сырое выражение уточнения вроде filters[isNew]=true.
proxyobjectопциональноКонфигурация прокси Apify. Настоятельно рекомендуются резидентные; закрепите apifyProxyCountry за целевым рынком.
maxConcurrencynumberопциональноПараллельные запросы. По умолчанию 5. US: 2-5. EU: 3. SEA: 8-16.
maxRequestsPerCrawlnumberопциональноГлобальный жесткий лимит по всем рынкам. 0 = без ограничений.

Поддерживаемые рынки

РегионКод рынкаСтранаВалютаДомен
АмерикаusСШАUSDsephora.com
АмерикаusКанадаCADsephora.ca
EUeu-frФранцияEURsephora.fr
EUeu-itИталияEURsephora.it
EUeu-deГерманияEURsephora.de
EUeu-esИспанияEURsephora.es
EUeu-plПольшаPLNsephora.pl
EUeu-czЧехияCZKsephora.cz
EUeu-grГрецияEURsephora.gr
EUeu-roРумынияRONsephora.ro
EUeu-ptПортугалияEURsephora.pt
Ближний Востокmena-aeОАЭAEDsephora.me/ae-en
Ближний Востокmena-saСаудовская АравияSARsephora.me/sa-en
Ближний Востокmena-bhБахрейнBHDsephora.me/bh-en
Ближний Востокmena-omОманOMRsephora.me/om-en
Ближний Востокmena-kwКувейтKWDsephora.me/kw-en
Ближний Востокmena-qaКатарQARsephora.me/qa-en
UKukВеликобританияGBPsephora.co.uk
ИндияinИндияINRsephora.in
APACsea-nzНовая ЗеландияNZDsephora.nz
APACsea-auАвстралияAUDsephora.com.au
APACsea-sgСингапурSGDsephora.sg
APACsea-myМалайзияMYRsephora.com.my
APACsea-thТаиландTHBsephora.co.th
APACsea-idИндонезияIDRsephora.co.id
APACsea-phФилиппиныPHPsephora.ph
APACsea-hkГонконгHKDsephora.hk
APACsea-twТайваньTWDsephora.tw
APACsea-bnБрунейBNDsephora.bn

Пример вывода

 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}

Советы

  • Закрепите страну прокси за целевым рынком. Резидентный выход в несоответствующей стране — самый крупный источник 403. Установите apifyProxyCountry в ISO-код витрины (US, FR, NZ и т. д.).
  • Сначала проведите smoke-тест. Установите maxRequestsPerCrawl=10 перед первым производственным запуском на новом рынке.
  • Настраивайте параллелизм по регионам. US: 2-5. EU: 3. SEA: 8-16. При смешанных запусках у каждого рынка свой отдельный семафор.

частые вопросы

Какие витрины Sephora поддерживает этот парсер?
US (sephora.com), Canada (sephora.ca), 9 рынков EU (FR, IT, DE, ES, PL, CZ, GR, RO, PT), 6 рынков Ближнего Востока на sephora.me (AE, SA, BH, OM, KW, QA), UK (sephora.co.uk), India (sephora.in) и 10 рынков APAC (NZ, AU, SG, MY, TH, ID, PH, HK, TW, BN). Рынок определяется автоматически по URL — по хосту или по префиксу пути вида /ae-en/ на sephora.me, — поэтому для смешанных запусков менять входные параметры не нужно.
Можно ли парсить несколько рынков за один запуск?
Да. Смешайте URL sephora.com, sephora.fr и sephora.nz в одном списке startUrls. Диспетчер сгруппирует их по рынкам, запустит каждый модуль параллельно с подходящей для рынка авторизацией и пометит каждый элемент датасета полем `market`.
Как парсер справляется с антибот-защитой?
Все рынки работают через резидентные прокси; заблокированный запрос автоматически повторяется в новой сессии. Для лучшей успешности закрепите страну прокси за рынком витрины.
Продолжат ли работать мои существующие конфигурации запуска v1.x для US?
Да. Входные параметры до версии 2.0 — startUrls, maxConcurrency, proxy, maxRequestsPerCrawl — ведут себя идентично. Единственное изменение в выводе — новое поле `market` в каждом элементе, это мягкое аддитивное изменение.
Почему некоторые поля равны null в данных SEA?
API Sephora SEA не предоставляет счетчик `lovesCount`, поэтому у элементов APAC `stats.lovesCount = null`. Вместо этого у каждого варианта есть булево поле `wishlisted`. И наоборот, `sentiments` (AI-сводки отзывов) и `source.crawlUrl` доступны только для US.
Нужны ли отдельные API-токены или аккаунты для каждого рынка?
Нет. Ваш существующий API-токен Apify работает без изменений. Актор сам управляет гостевыми токенами по каждому рынку внутри — учетные данные не нужны для EU/SEA, а US работает на стандартных резидентных прокси Apify.

похожие в ~/ecommerce

Запустите Sephora Scraper (Глобально) или закажите разработку под задачу

Начните извлекать данные на Apify за считаные минуты или закажите у меня разработку парсера на заказ и RAG-конвейера под ваш источник и схему.

запустить на Apify заказать данные