~/ecommerce/sephora-scraper
Sephora Scraper(글로벌)
미국, 캐나다, EU 9개국, 중동 6개국, 영국, 인도, 아시아태평양 10개국의 Sephora 스토어에서 상품 변형, 가격, 이미지, 성분, 리뷰까지 전체 상품 데이터를 하나의 정규화된 스키마로 추출하는 Apify 액터입니다.
뷰티
PythonCrawlee
미국캐나다프랑스이탈리아독일스페인폴란드체코그리스루마니아포르투갈아랍에미리트사우디아라비아바레인오만쿠웨이트카타르영국인도뉴질랜드호주싱가포르말레이시아태국인도네시아필리핀홍콩대만브루나이
카테고리ecommerce / 뷰티
언어Python
스택Python, Crawlee
마켓미국, 캐나다, 프랑스, 이탈리아, 독일, 스페인, 폴란드, 체코, 그리스, 루마니아, 포르투갈, 아랍에미리트, 사우디아라비아, 바레인, 오만, 쿠웨이트, 카타르, 영국, 인도, 뉴질랜드, 호주, 싱가포르, 말레이시아, 태국, 인도네시아, 필리핀, 홍콩, 대만, 브루나이
출력클린한 RAG-레디 JSON
주요 기능
하나의 액터로 미국, 캐나다, EU 9개국, 중동 6개국, 영국, 인도, APAC 10개국을 커버
자동 마켓 감지 — sephora.* URL을 붙여넣으면 디스패처가 알맞은 모듈로 라우팅
다중 마켓 혼합 실행 — 미국 + EU + SEA URL을 하나의 startUrls 목록에 담으면 `market`으로 태그된 단일 데이터셋으로 스트리밍
로케일에 맞는 가격 — USD, EUR부터 AED, INR까지 스토어별 고유 통화(총 24종)를 Sephora 자체 로컬라이제이션 레이어가 그대로 반환
정규화된 스키마 — 모든 마켓이 동일한 `source / brand / title / options / variants / medias / stats` 구조로 출력
마켓별 세션 격리 — 인증 상태가 지역 간에 섞이지 않음
글로벌 서킷 브레이커 — 50회 연속 실패 시 실행을 중단해 다운된 타겟에 컴퓨팅 자원을 낭비하지 않음
활용 사례
- 미국, EU, APAC 뷰티 마켓 전반의 범지역 가격 인텔리전스
- 마켓 간 상품 재고 및 구색 모니터링
- 새로운 Sephora 지역에 진출하는 브랜드를 위한 경쟁사 분석
- 지역별 포뮬레이션 간 성분 비교
- 리뷰 및 평점 추적 — SEA 위시리스트 신호와 미국 AI 감성 요약 포함
- 마켓별 로열티/멤버십 가격 감사
입력 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
startUrls | array | 필수 | sephora.* 스토어의 상품 또는 카테고리 URL. 호스트네임으로 마켓이 자동 감지됩니다. |
market | string | 선택 | 선택적 마켓 재정의(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). |
locale | string | 선택 | 선택적 BCP 47 로케일(예: fr-FR, en-NZ) — 마켓 기본값을 재정의합니다. |
categoryIds | array | 선택 | EU, 중동, 영국, 인도 지원. 마켓별 고유 형식의 카테고리 ID(예: EU 스토어는 C479) — 카테고리 URL을 붙여넣는 대신 사용할 수 있습니다. |
onlyNewProducts | boolean | 선택 | 최근 추가된 상품만: 미국/캐나다와 FR, IT, DE, ES, PL, RO, PT는 서버 사이드 필터, SEA와 인도는 최신순 목록 페이지를 사용합니다. 그 외 마켓은 지원하지 않습니다. |
newProductsPageLimit | number | 선택 | onlyNewProducts가 SEA 또는 인도에서 실행될 때 카테고리당 목록 페이지 수. 기본값 3. |
advancedFilter | string | 선택 | 미국/캐나다 카테고리 목록 전용: filters[isNew]=true와 같은 원시 정제(refinement) 표현식. |
proxy | object | 선택 | Apify 프록시 설정. 레지덴셜을 강력히 권장하며, apifyProxyCountry를 타겟 마켓으로 고정하세요. |
maxConcurrency | number | 선택 | 동시 요청 수. 기본값 5. 미국: 2-5. EU: 3. SEA: 8-16. |
maxRequestsPerCrawl | number | 선택 | 모든 마켓을 아우르는 전역 상한. 0 = 무제한. |
지원 마켓
| 지역 | 마켓 ID | 국가 | 통화 | 호스트네임 |
|---|---|---|---|---|
| 아메리카 | us | 미국 | USD | sephora.com |
| 아메리카 | us | 캐나다 | CAD | sephora.ca |
| EU | eu-fr | 프랑스 | EUR | sephora.fr |
| EU | eu-it | 이탈리아 | EUR | sephora.it |
| EU | eu-de | 독일 | EUR | sephora.de |
| EU | eu-es | 스페인 | EUR | sephora.es |
| EU | eu-pl | 폴란드 | PLN | sephora.pl |
| EU | eu-cz | 체코 | CZK | sephora.cz |
| EU | eu-gr | 그리스 | EUR | sephora.gr |
| EU | eu-ro | 루마니아 | RON | sephora.ro |
| EU | eu-pt | 포르투갈 | EUR | sephora.pt |
| 중동 | mena-ae | 아랍에미리트 | AED | sephora.me/ae-en |
| 중동 | mena-sa | 사우디아라비아 | SAR | sephora.me/sa-en |
| 중동 | mena-bh | 바레인 | BHD | sephora.me/bh-en |
| 중동 | mena-om | 오만 | OMR | sephora.me/om-en |
| 중동 | mena-kw | 쿠웨이트 | KWD | sephora.me/kw-en |
| 중동 | mena-qa | 카타르 | QAR | sephora.me/qa-en |
| 영국 | uk | 영국 | GBP | sephora.co.uk |
| 인도 | in | 인도 | INR | sephora.in |
| APAC | sea-nz | 뉴질랜드 | NZD | sephora.nz |
| APAC | sea-au | 호주 | AUD | sephora.com.au |
| APAC | sea-sg | 싱가포르 | SGD | sephora.sg |
| APAC | sea-my | 말레이시아 | MYR | sephora.com.my |
| APAC | sea-th | 태국 | THB | sephora.co.th |
| APAC | sea-id | 인도네시아 | IDR | sephora.co.id |
| APAC | sea-ph | 필리핀 | PHP | sephora.ph |
| APAC | sea-hk | 홍콩 | HKD | sephora.hk |
| APAC | sea-tw | 대만 | TWD | sephora.tw |
| APAC | sea-bn | 브루나이 | BND | sephora.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}
팁
- 프록시 국가를 타겟 마켓에 고정하세요. 국가가 일치하지 않는 레지덴셜 출구 IP는 403이 발생하는 가장 큰 원인입니다.
apifyProxyCountry를 스토어의 ISO 코드(US,FR,NZ등)로 설정하세요. - 먼저 스모크 테스트를 하세요. 새로운 마켓에서 첫 프로덕션 실행을 하기 전에
maxRequestsPerCrawl=10으로 설정해보세요. - 지역별로 동시성을 조정하세요. 미국: 2-5. EU: 3. SEA: 8-16. 혼합 실행에서는 각 마켓이 자체 세마포어를 가집니다.
자주 묻는 질문
이 스크래퍼는 어떤 Sephora 스토어를 지원하나요?
미국(sephora.com), 캐나다(sephora.ca), EU 9개국(FR, IT, DE, ES, PL, CZ, GR, RO, PT), sephora.me의 중동 6개국(AE, SA, BH, OM, KW, QA), 영국(sephora.co.uk), 인도(sephora.in), APAC 10개국(NZ, AU, SG, MY, TH, ID, PH, HK, TW, BN)을 지원합니다. 마켓은 URL에서 자동 감지됩니다 — 호스트네임, 또는 sephora.me에서는 /ae-en/ 형식의 경로 접두사로 판별되므로, 마켓을 섞어서 실행해도 추가 입력이 필요 없습니다.
한 번의 실행으로 여러 마켓을 크롤링할 수 있나요?
네. sephora.com, sephora.fr, sephora.nz URL을 하나의 startUrls 목록에 섞어서 넣으면 됩니다. 디스패처가 이를 마켓별로 그룹화하고, 각 모듈을 마켓에 맞는 인증으로 동시 실행하며, 모든 데이터셋 항목에 `market` 필드를 태그합니다.
스크래퍼는 안티봇 방어를 어떻게 처리하나요?
모든 마켓은 레지덴셜 프록시를 사용하며, 요청이 차단되면 새 세션으로 자동 재시도합니다. 최고의 성공률을 위해 프록시 국가를 스토어 마켓에 고정하세요.
기존 v1.x 미국 실행 설정도 계속 동작하나요?
네. 2.0 이전 입력값(startUrls, maxConcurrency, proxy, maxRequestsPerCrawl)은 동일하게 동작합니다. 유일한 출력 변경사항은 모든 항목에 새로 추가된 `market` 키뿐이며, 이는 기존 구조를 해치지 않는 추가적 변경입니다.
SEA 데이터에서 일부 필드가 null인 이유는 무엇인가요?
Sephora SEA의 API는 `lovesCount` 카운터를 노출하지 않으므로, APAC 항목은 `stats.lovesCount = null`이 됩니다. 대신 각 변형에는 불리언 `wishlisted` 필드가 있습니다. 반대로 `sentiments`(AI 리뷰 요약)와 `source.crawlUrl`은 미국 전용입니다.
마켓별로 별도의 API 토큰이나 계정이 필요한가요?
아니요. 기존 Apify API 토큰을 그대로 사용할 수 있습니다. 액터가 내부적으로 마켓별 게스트 토큰을 처리하므로 EU/SEA에는 별도의 인증 정보가 필요 없고, 미국은 표준 Apify 레지덴셜 프록시로 동작합니다.