~/ecommerce/sephora-scraper

Sephora Scraper(グローバル)

米国、カナダ、9つのEU市場、6つの中東市場、イギリス、インド、10のアジア太平洋市場のSephoraストアから、バリアント・価格・画像・成分・レビューを含む完全な商品データを、単一の正規化スキーマで抽出するApifyアクターです。

美容 PythonCrawlee アメリカカナダフランスイタリアドイツスペインポーランドチェコギリシャルーマニアポルトガルアラブ首長国連邦サウジアラビアバーレーンオマーンクウェートカタールイギリスインドニュージーランドオーストラリアシンガポールマレーシアタイインドネシアフィリピン香港台湾ブルネイ
proooxy/sephora-scraper — スペック
カテゴリecommerce / 美容
言語Python
スタックPython, Crawlee
マーケットアメリカ, カナダ, フランス, イタリア, ドイツ, スペイン, ポーランド, チェコ, ギリシャ, ルーマニア, ポルトガル, アラブ首長国連邦, サウジアラビア, バーレーン, オマーン, クウェート, カタール, イギリス, インド, ニュージーランド, オーストラリア, シンガポール, マレーシア, タイ, インドネシア, フィリピン, 香港, 台湾, ブルネイ
出力クリーンでRAG対応のJSON

主な機能

1つのアクターで、米国、カナダ、9つのEU市場、6つの中東市場、イギリス、インド、10のAPAC市場に対応

市場の自動検出 — sephora.*のURLを貼り付けるだけで、ディスパッチャーが適切なモジュールへルーティング

複数市場を混在させた実行 — US+EU+SEAのURLを1つのstartUrlsリストにまとめ、`market`タグ付きの単一データセットへストリーミング

ロケールに応じた正確な価格 — 各ストアごとの通貨(USDやEURからAED、INRまで合計24通貨)を、Sephora自身のローカライゼーション層がそのまま返却

正規化されたスキーマ — すべての市場が同じ`source / brand / title / options / variants / medias / stats`構造で出力

市場ごとのセッション分離 — 認証状態がリージョン間で混線することはありません

グローバルサーキットブレーカー — 50回連続で失敗すると実行を中断し、ダウンしたターゲットへの無駄な計算リソース消費を回避

活用例

  • 米国・EU・APACの美容市場を横断する地域間価格インテリジェンス
  • 市場横断での商品在庫・品揃えモニタリング
  • 新たなSephora地域に進出するブランド向けの競合分析
  • 地域別処方における成分比較
  • レビュー・評価のトラッキング — SEAのウィッシュリストシグナルや米国のAIセンチメント要約を含む
  • 市場ごとのロイヤルティ/会員価格監査

入力パラメータ

パラメータ型必須説明
startUrlsarray必須任意のsephora.*ストアの商品またはカテゴリURL。市場はホスト名から自動検出されます。
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(例:EUストアではC479) — カテゴリ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=無制限。

Supported markets

地域マーケットID国通貨ホスト名
南北アメリカusUnited StatesUSDsephora.com
南北アメリカusCanadaCADsephora.ca
EUeu-frFranceEURsephora.fr
EUeu-itItalyEURsephora.it
EUeu-deGermanyEURsephora.de
EUeu-esSpainEURsephora.es
EUeu-plPolandPLNsephora.pl
EUeu-czCzech RepublicCZKsephora.cz
EUeu-grGreeceEURsephora.gr
EUeu-roRomaniaRONsephora.ro
EUeu-ptPortugalEURsephora.pt
中東mena-aeUnited Arab EmiratesAEDsephora.me/ae-en
中東mena-saSaudi ArabiaSARsephora.me/sa-en
中東mena-bhBahrainBHDsephora.me/bh-en
中東mena-omOmanOMRsephora.me/om-en
中東mena-kwKuwaitKWDsephora.me/kw-en
中東mena-qaQatarQARsephora.me/qa-en
イギリスukUnited KingdomGBPsephora.co.uk
インドinIndiaINRsephora.in
APACsea-nzNew ZealandNZDsephora.nz
APACsea-auAustraliaAUDsephora.com.au
APACsea-sgSingaporeSGDsephora.sg
APACsea-myMalaysiaMYRsephora.com.my
APACsea-thThailandTHBsephora.co.th
APACsea-idIndonesiaIDRsephora.co.id
APACsea-phPhilippinesPHPsephora.ph
APACsea-hkHong KongHKDsephora.hk
APACsea-twTaiwanTWDsephora.tw
APACsea-bnBruneiBNDsephora.bn

Output Example

 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

  • プロキシの国を対象市場に固定しましょう。 国が一致しないレジデンシャル出口は、403エラーの最大の原因です。apifyProxyCountryをストアのISOコード(US、FR、NZなど)に設定してください。
  • まずはスモークテストを。 新しい市場での本番実行前にmaxRequestsPerCrawl=10を設定して試しましょう。
  • 同時実行数はリージョンごとに調整しましょう。 US:2〜5。EU:3。SEA:8〜16。混在実行では、各市場が独自のセマフォを持ちます。

よくある質問

このスクレイパーが対応しているSephoraストアはどこですか?
米国(sephora.com)、カナダ(sephora.ca)、9つのEU市場(フランス、イタリア、ドイツ、スペイン、ポーランド、チェコ、ギリシャ、ルーマニア、ポルトガル)、sephora.meの6つの中東市場(アラブ首長国連邦、サウジアラビア、バーレーン、オマーン、クウェート、カタール)、イギリス(sephora.co.uk)、インド(sephora.in)、10のAPAC市場(ニュージーランド、オーストラリア、シンガポール、マレーシア、タイ、インドネシア、フィリピン、香港、台湾、ブルネイ)です。市場はURLから自動検出されます——ホスト名か、sephora.meでは/ae-en/のようなパスプレフィックスによって判定されるため、複数市場を混在させる実行でも追加の入力は不要です。
1回の実行で複数の市場をスクレイピングできますか?
はい。sephora.com、sephora.fr、sephora.nzのURLを1つのstartUrlsリストに混在させてください。ディスパッチャーが市場ごとにグループ化し、各モジュールを市場に適した認証で並列実行し、すべてのデータセットアイテムに`market`フィールドを付与します。
アンチボット対策にはどう対応していますか?
全市場でレジデンシャルプロキシを使い、リクエストがブロックされると新しいセッションで自動的に再試行します。最良の成功率を得るには、プロキシの国をストアの市場に固定してください。
既存のv1.x US実行設定はそのまま使えますか?
はい。2.0より前の入力——startUrls、maxConcurrency、proxy、maxRequestsPerCrawl——は同一の挙動をします。出力の変更点は、すべてのアイテムに新たな`market`キーが追加される点のみで、これは後方互換性のある追加的な変更です。
SEAデータで一部のフィールドがnullになるのはなぜですか?
Sephora SEAのAPIは`lovesCount`カウンターを公開していないため、APACのアイテムでは`stats.lovesCount = null`になります。代わりに、各バリアントにはboolean型の`wishlisted`フィールドがあります。逆に、`sentiments`(AIによるレビュー要約)と`source.crawlUrl`は米国限定です。
市場ごとに個別のAPIトークンやアカウントが必要ですか?
いいえ。既存のApify APIトークンをそのまま使用できます。市場ごとのゲストトークンはアクター内部で処理されます——EU/SEAでは認証情報は不要で、米国は標準のApifyレジデンシャルプロキシで動作します。

~/ecommerce の関連ツール

Sephora Scraper(グローバル)を実行、またはカスタム開発を依頼

数分でApify上での抽出を開始できます。または、あなたの取得元とスキーマに合わせたオーダーメイドのスクレイパーとRAGパイプラインの構築を依頼できます。

Apifyで実行 カスタムデータを依頼