~/ecommerce/sephora-scraper

Sephora Scraper (ग्लोबल)

एक Apify एक्टर जो US, Canada, 9 EU मार्केट, और 10 एशिया-पैसिफ़िक मार्केट के 21 स्टोरफ्रंट से — वेरिएंट, प्राइस, इमेज, ingredients, और रिव्यू सहित — पूरा Sephora प्रोडक्ट डेटा एक ही normalized schema में एक्सट्रैक्ट करता है।

ब्यूटी >99% सफलता PythonCrawleecurl_cffi अमेरिकाकनाडाफ्रांसइटलीजर्मनीस्पेनपोलैंडचेक गणराज्यग्रीसरोमानियापुर्तगालन्यूज़ीलैंडऑस्ट्रेलियासिंगापुरमलेशियाथाईलैंडइंडोनेशियाफिलीपींसहॉन्ग कॉन्गताइवानब्रुनेई
proooxy/sephora-scraper — स्पेक
कैटेगरीecommerce / ब्यूटी
भाषाPython
स्टैकPython, Crawlee, curl_cffi
मार्केट्सअमेरिका, कनाडा, फ्रांस, इटली, जर्मनी, स्पेन, पोलैंड, चेक गणराज्य, ग्रीस, रोमानिया, पुर्तगाल, न्यूज़ीलैंड, ऑस्ट्रेलिया, सिंगापुर, मलेशिया, थाईलैंड, इंडोनेशिया, फिलीपींस, हॉन्ग कॉन्ग, ताइवान, ब्रुनेई
सफलता>99%
आउटपुटसाफ, RAG-तैयार JSON

मुख्य विशेषताएं

एक ही एक्टर में 21 स्टोरफ्रंट — US, Canada, 9 EU मार्केट, और 10 APAC मार्केट एक ही SKU से कवर

ऑटो-डिटेक्टेड मार्केट — कोई भी sephora.* URL पेस्ट करें और dispatcher उसे सही मॉड्यूल पर रूट कर देता है

मिक्स्ड मल्टी-मार्केट रन — US + EU + SEA URL एक ही startUrls लिस्ट में, `market` से टैग किए गए एक ही dataset में स्ट्रीम्ड

Locale-सही प्राइसिंग — NZD, EUR, USD, AUD और 17 अन्य करेंसी, जो Sephora के अपने localization लेयर से मिलती हैं

Normalized schema — हर मार्केट एक ही `source / brand / title / options / variants / medias / stats` शेप देता है

Per-market सेशन आइसोलेशन — auth state रीजन के बीच cross-contaminate नहीं हो सकता

ग्लोबल सर्किट ब्रेकर — किसी डाउन टारगेट पर कंप्यूट बर्न होने से बचाने के लिए 50 लगातार फ़ेलियर पर रन एबॉर्ट हो जाता है

यूज़ केस

  • US, EU, और APAC ब्यूटी मार्केट में पैन-रीजनल प्राइसिंग इंटेलिजेंस
  • क्रॉस-मार्केट प्रोडक्ट उपलब्धता और assortment मॉनिटरिंग
  • नए Sephora रीजन में लॉन्च करने वाले ब्रांड्स के लिए प्रतिस्पर्धी विश्लेषण
  • रीजनल formulations में ingredient कंपैरिज़न
  • रिव्यू और रेटिंग ट्रैकिंग — SEA wishlist सिग्नल और US AI sentiment summaries सहित
  • प्रति मार्केट Loyalty/membership प्राइसिंग ऑडिट

इनपुट पैरामीटर

पैरामीटरटाइपआवश्यकविवरण
startUrlsarrayआवश्यककिसी भी sephora.* स्टोरफ्रंट से प्रोडक्ट या कैटेगरी URL। मार्केट hostname से ऑटो-डिटेक्ट होता है।
marketstringवैकल्पिकवैकल्पिक मार्केट override (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)।
localestringवैकल्पिकवैकल्पिक BCP 47 locale (जैसे fr-FR, en-NZ) — मार्केट डिफ़ॉल्ट को override करता है।
categoryIdsarrayवैकल्पिकसिर्फ़ EU के लिए। SFCC category ID जैसे C479 — कैटेगरी URL पेस्ट करने का विकल्प।
proxyobjectवैकल्पिकApify प्रॉक्सी कॉन्फ़िग। रेजिडेंशियल की ज़ोरदार सलाह; apifyProxyCountry को टारगेट मार्केट पर पिन करें।
maxConcurrencynumberवैकल्पिकसमवर्ती रिक्वेस्ट। डिफ़ॉल्ट 5। US: 2-5। EU: 3। SEA: 8-16।
maxRequestsPerCrawlnumberवैकल्पिकसभी मार्केट में ग्लोबल hard cap। 0 = अनलिमिटेड।

सपोर्टेड मार्केट

रीजनमार्केट IDदेशकरेंसीहोस्टनेम
अमेरिका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
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}

टिप्स

  • प्रॉक्सी country को टारगेट मार्केट पर पिन करें। गलत country का रेजिडेंशियल exit Sephora के Akamai लेयर से मिलने वाले 403s का सबसे बड़ा सोर्स है। apifyProxyCountry को स्टोरफ्रंट के ISO कोड (US, FR, NZ, वगैरह) पर सेट करें।
  • पहले smoke-test करें। किसी नए मार्केट में अपने पहले प्रोडक्शन रन से पहले maxRequestsPerCrawl=10 सेट करें।
  • प्रति रीजन कॉन्करेंसी ट्यून करें। US: 2-5। EU: 3। SEA: 8-16। मिक्स्ड रन में हर मार्केट को अपना सेमाफ़ोर मिलता है।

सामान्य प्रश्न

यह स्क्रैपर कौन-कौन से Sephora स्टोरफ्रंट सपोर्ट करता है?
21 स्टोरफ्रंट: अमेरिका (sephora.com), कनाडा (sephora.ca), 9 EU मार्केट (FR, IT, DE, ES, PL, CZ, GR, RO, PT), और 10 APAC मार्केट (NZ, AU, SG, MY, TH, ID, PH, HK, TW, BN)। मार्केट hostname से ऑटो-डिटेक्ट होता है — मार्केट मिक्स करते समय किसी इनपुट बदलाव की ज़रूरत नहीं।
क्या मैं एक ही रन में कई मार्केट स्क्रैप कर सकता हूं?
हां। एक ही startUrls लिस्ट में sephora.com, sephora.fr, और sephora.nz URL मिक्स करें। Dispatcher इन्हें मार्केट के हिसाब से ग्रुप करता है, हर मॉड्यूल को मार्केट-उपयुक्त auth के साथ समवर्ती रूप से चलाता है, और हर dataset आइटम को एक `market` फ़ील्ड से टैग करता है।
स्क्रैपर एंटी-बॉट प्रोटेक्शन कैसे हैंडल करता है?
यह सभी मार्केट के लिए रेजिडेंशियल प्रॉक्सी इस्तेमाल करता है और Akamai को बाईपास करने के लिए EU व SEA ट्रैफ़िक पर ब्राउज़र-ग्रेड TLS फ़िंगरप्रिंटिंग के लिए curl_cffi इस्तेमाल करता है। US ट्रैफ़िक Crawlee के HttpCrawler का इस्तेमाल करता है, एक सेशन पूल के साथ जो 403/429 पर रोटेट होता है।
क्या मेरे मौजूदा v1.x US रन कॉन्फ़िग काम करते रहेंगे?
हां। Pre-2.0 इनपुट — startUrls, maxConcurrency, proxy, maxRequestsPerCrawl — बिल्कुल पहले जैसा ही व्यवहार करते हैं। सिर्फ़ आउटपुट में बदलाव यह है कि हर आइटम पर एक नया `market` key जुड़ जाता है, जो एक soft additive बदलाव है।
SEA डेटा में कुछ फ़ील्ड null क्यों होते हैं?
Sephora SEA का API `lovesCount` काउंटर एक्सपोज़ नहीं करता, इसलिए APAC आइटम में `stats.lovesCount = null` होता है। इसके बजाय हर वेरिएंट में एक boolean `wishlisted` फ़ील्ड होता है। वहीं दूसरी ओर, `sentiments` (AI रिव्यू summaries) और `source.crawlUrl` सिर्फ़ US के लिए हैं।
क्या मुझे प्रति मार्केट अलग API tokens या अकाउंट चाहिए?
नहीं। आपका मौजूदा Apify API token बिना किसी बदलाव के काम करता है। एक्टर per-market गेस्ट tokens को इंटरनली हैंडल करता है — EU/SEA के लिए किसी क्रेडेंशियल की ज़रूरत नहीं, और US स्टैंडर्ड Apify रेजिडेंशियल प्रॉक्सी पर काम करता है।

~/ecommerce में संबंधित

Sephora Scraper (ग्लोबल) रन करें, या कस्टम बिल्ड पाएं

मिनटों में Apify पर एक्सट्रैक्शन शुरू करें, या अपने सोर्स और स्कीमा के लिए कस्टम स्क्रैपर और RAG पाइपलाइन बनवाने के लिए मुझे हायर करें।

Apify पर रन करें कस्टम डेटा पाएं