~/ecommerce/sephora-scraper

Sephora Scraper (Global)

Apify Actor yang mengekstrak data produk Sephora lengkap — varian, harga, gambar, ingredient, dan ulasan — dari 21 storefront di US, Kanada, 9 pasar EU, dan 10 pasar Asia-Pasifik dalam satu skema yang dinormalisasi.

kecantikan >99% keberhasilan PythonCrawleecurl_cffi Amerika SerikatKanadaPrancisItaliaJermanSpanyolPolandiaCekoYunaniRumaniaPortugalSelandia BaruAustraliaSingapuraMalaysiaThailandIndonesiaFilipinaHong KongTaiwanBrunei
proooxy/sephora-scraper — spec
kategoriecommerce / kecantikan
bahasaPython
stackPython, Crawlee, curl_cffi
pasarAmerika Serikat, Kanada, Prancis, Italia, Jerman, Spanyol, Polandia, Ceko, Yunani, Rumania, Portugal, Selandia Baru, Australia, Singapura, Malaysia, Thailand, Indonesia, Filipina, Hong Kong, Taiwan, Brunei
keberhasilan>99%
outputJSON bersih, siap-RAG

fitur utama

21 storefront dalam satu actor — US, Kanada, 9 pasar EU, dan 10 pasar APAC dicakup oleh satu SKU

Pasar terdeteksi otomatis — tempel URL sephora.* apa pun dan dispatcher akan merutekannya ke module yang tepat

Run multi-pasar campuran — URL US + EU + SEA dalam satu list startUrls, di-stream ke satu dataset yang ditandai dengan `market`

Harga sesuai locale — NZD, EUR, USD, AUD dan 17 mata uang lain yang dikembalikan oleh localization layer milik Sephora sendiri

Skema yang dinormalisasi — setiap pasar menghasilkan bentuk `source / brand / title / options / variants / medias / stats` yang sama

Isolasi sesi per pasar — auth state tidak bisa saling terkontaminasi antar region

Circuit breaker global — 50 kegagalan berturut-turut akan menghentikan run untuk menghindari pemborosan compute pada target yang down

use case

  • Pricing intelligence pan-regional di pasar kecantikan US, EU, dan APAC
  • Monitoring ketersediaan produk dan assortment lintas pasar
  • Analisis kompetitif untuk brand yang meluncurkan produk di region Sephora baru
  • Perbandingan ingredient di berbagai formulasi regional
  • Pelacakan review dan rating — termasuk sinyal wishlist SEA dan ringkasan sentimen AI US
  • Audit harga loyalty/membership per pasar

parameter input

ParameterTipeWajibDeskripsi
startUrlsarraywajibURL produk atau kategori dari storefront sephora.* mana pun. Pasar terdeteksi otomatis dari hostname.
marketstringopsionalOverride pasar opsional (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).
localestringopsionalLocale BCP 47 opsional (contoh: fr-FR, en-NZ) — meng-override default pasar.
categoryIdsarrayopsionalKhusus EU. Category ID SFCC seperti C479 — alternatif dari menempel URL kategori.
proxyobjectopsionalKonfigurasi Apify proxy. Residential sangat disarankan; pin apifyProxyCountry ke pasar target.
maxConcurrencynumberopsionalRequest concurrent. Default 5. US: 2-5. EU: 3. SEA: 8-16.
maxRequestsPerCrawlnumberopsionalHard cap global di semua pasar. 0 = tanpa batas.

Pasar yang didukung

WilayahMarket IDNegaraMata UangHostname
AmerikausAmerika SerikatUSDsephora.com
AmerikausKanadaCADsephora.ca
EUeu-frPrancisEURsephora.fr
EUeu-itItaliaEURsephora.it
EUeu-deJermanEURsephora.de
EUeu-esSpanyolEURsephora.es
EUeu-plPolandiaPLNsephora.pl
EUeu-czRepublik CekoCZKsephora.cz
EUeu-grYunaniEURsephora.gr
EUeu-roRumaniaRONsephora.ro
EUeu-ptPortugalEURsephora.pt
APACsea-nzSelandia BaruNZDsephora.nz
APACsea-auAustraliaAUDsephora.com.au
APACsea-sgSingapuraSGDsephora.sg
APACsea-myMalaysiaMYRsephora.com.my
APACsea-thThailandTHBsephora.co.th
APACsea-idIndonesiaIDRsephora.co.id
APACsea-phFilipinaPHPsephora.ph
APACsea-hkHong KongHKDsephora.hk
APACsea-twTaiwanTWDsephora.tw
APACsea-bnBruneiBNDsephora.bn

Contoh 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}

Tips

  • Pin negara proxy ke pasar target. Exit residential di negara yang tidak sesuai adalah sumber terbesar 403 dari layer Akamai milik Sephora. Set apifyProxyCountry ke kode ISO storefront-nya (US, FR, NZ, dst.).
  • Smoke-test dulu. Set maxRequestsPerCrawl=10 sebelum run produksi pertama Anda di pasar baru.
  • Tune concurrency per region. US: 2-5. EU: 3. SEA: 8-16. Setiap pasar mendapat semaphore-nya sendiri dalam run campuran.

faq

Storefront Sephora mana saja yang didukung scraper ini?
21 storefront: US (sephora.com), Kanada (sephora.ca), 9 pasar EU (Prancis, Italia, Jerman, Spanyol, Polandia, Ceko, Yunani, Rumania, Portugal), dan 10 pasar APAC (Selandia Baru, Australia, Singapura, Malaysia, Thailand, Indonesia, Filipina, Hong Kong, Taiwan, Brunei). Pasar terdeteksi otomatis dari hostname — tidak perlu mengubah input saat mencampur pasar.
Bisakah saya men-scrape banyak pasar dalam satu run?
Bisa. Campurkan URL sephora.com, sephora.fr, dan sephora.nz dalam satu list startUrls. Dispatcher akan mengelompokkannya berdasarkan pasar, menjalankan setiap module secara concurrent dengan auth yang sesuai pasarnya, dan menandai setiap item dataset dengan field `market`.
Bagaimana scraper ini menangani proteksi anti-bot?
Scraper ini memakai residential proxy untuk semua pasar dan curl_cffi untuk TLS fingerprinting setara browser pada traffic EU dan SEA guna bypass Akamai. Traffic US memakai HttpCrawler milik Crawlee dengan session pool yang berotasi saat 403/429.
Apakah konfigurasi run v1.x US saya yang sudah ada tetap berfungsi?
Ya. Input pre-2.0 — startUrls, maxConcurrency, proxy, maxRequestsPerCrawl — berperilaku identik. Satu-satunya perubahan output adalah key `market` baru di setiap item, yang merupakan perubahan additive yang aman (soft).
Mengapa sebagian field bernilai null di data SEA?
API Sephora SEA tidak mengekspos counter `lovesCount`, sehingga item APAC memiliki `stats.lovesCount = null`. Sebagai gantinya, setiap varian punya field boolean `wishlisted`. Sebaliknya, `sentiments` (ringkasan review AI) dan `source.crawlUrl` hanya tersedia untuk US.
Apakah saya perlu API token atau akun terpisah per pasar?
Tidak. API token Apify Anda yang sudah ada tetap berfungsi tanpa perubahan. Actor ini menangani guest token per pasar secara internal — tidak perlu kredensial untuk EU/SEA, dan US berjalan dengan residential proxy standar Apify.

terkait di ~/ecommerce

Jalankan Sephora Scraper (Global), atau dapatkan build custom

Mulai ekstraksi di Apify dalam hitungan menit, atau sewa saya untuk membangun scraper custom dan pipeline RAG untuk source dan skema spesifik Anda.

run di Apify dapatkan data custom