~/ecommerce/macys-scraper

Macy's Scraper — 商品・価格・SKU・ニュースを取得

Macy'sの商品データ——価格、バリアント、SKU/UPCバーコード、画像、評価・レビュー——に加え、Macy's Inc.のニュースを、検索・カテゴリ・トレンド・商品URLから抽出します。ブラウザ不要でAkamaiにも対応。

百貨店 TypeScriptCrawleeCheerio アメリカ
proooxy/macys-scraper — スペック
カテゴリecommerce / 百貨店
言語TypeScript
スタックTypeScript, Crawlee, Cheerio
マーケットアメリカ
出力クリーンでRAG対応のJSON

主な機能

1つのアクターで4つの取得対象 — 商品検索、カテゴリ、トレンド、Macy's Inc.ニュース

Macy's自身のモバイル・Web JSON APIを利用し、ブラウザなしでAkamai Bot Managerを突破

購入可能な全バリアントについて、SKUごとのUPCバーコードとカラー・サイズ・在庫状況・価格を取得

価格はセント単位の整数に加えローカライズされたフォーマット済み文字列でも提供 — 浮動小数点の丸め誤差なし

詳細なレビューインテリジェンス — 星評価のヒストグラム、推奨件数、フィット感・サイズ感の副次評価

バリアントごとに行を分けず、全カラー・サイズを1つの商品レコードにグループ化

出力にはクリーンな正規URLのみ — 内部APIエンドポイントやクライアントキーは一切含まれません

search、category、trending、商品詳細の結果すべてで統一された正規化スキーマ

活用例

  • SKUレベルでの百貨店価格・プロモーションモニタリング
  • 競合分析 — Macy's対Nordstrom、Ulta、ブランドDTC価格
  • バリアント単位のUPCバーコードによる小売業者横断のカタログマッチング
  • Macy'sで販売されているブランドのレビュー・評価インテリジェンス
  • 小売ニュースモニタリング — Macy's Inc.のプレスリリースと決算発表

入力パラメータ

パラメータ必須説明
scrapeTypestring必須取得対象:search、category、trending、news、allのいずれか(デフォルト:search)。
querystring任意商品検索用のキーワード。例:women shoes。
startUrlsarray任意MacyのURL(商品/カテゴリページ)またはMacy's Inc.ニュースのURL。
categoryIdsarray任意Macyのカテゴリ ID(例:5449)。判明している場合はカテゴリURLの使用を推奨。
trendingUrlsarray任意トレンド、ベストセラー、または特集リスティングのURL。
newsUrlsarray任意Macy's Inc.のニュース一覧または記事のURL。
includeProductDetailsboolean任意リスト項目にバリアント・SKU・ギャラリーなどの詳細な商品情報を付加(デフォルト:true)。
maxPagesnumber任意リスト/ニュースソースごとの最大ページネーション深度。
maxResultsnumber任意出力レコード数の上限。0=上限なし。
proxyobject必須Apify Proxyまたはカスタムプロキシ URL。レジデンシャル・国はUSを推奨。

Output Example

 1{
 2  "type": "product",
 3  "source": {
 4    "id": "12345678",
 5    "canonicalUrl": "https://www.macys.com/shop/product/calvin-klein-womens-sheath-dress?ID=12345678",
 6    "retailer": "macys",
 7    "currency": "USD"
 8  },
 9  "title": "Women's Sleeveless Sheath Dress",
10  "brand": "Calvin Klein",
11  "categories": ["Women", "Dresses", "Work Dresses"],
12  "price": {
13    "sale": 5999,
14    "list": 9800,
15    "currentFormatted": "$59.99",
16    "stockStatus": "InStock"
17  },
18  "stats": { "rating": 4.6, "reviewCount": 9, "ratingPercentage": 92 },
19  "options": [
20    { "type": "Color", "values": [{ "id": "1", "name": "Black" }] },
21    { "type": "Size", "values": [{ "id": "10", "name": "M" }, { "id": "12", "name": "L" }] }
22  ],
23  "variants": [
24    {
25      "id": "987654",
26      "sku": "192837465012",
27      "options": ["Black", "M"],
28      "price": { "stockStatus": "InStock" },
29      "extraInfo": { "upc": "192837465012" }
30    }
31  ],
32  "medias": [{ "type": "Image", "url": "https://slimages.macysassets.com/is/image/MCY/products/.../main.jpg" }]
33}

Pricing

イベント課金制——実際に保存されたアイテムに対してのみ課金されます。

イベント価格内容
商品のスクレイピング$0.006バリアント、SKU/UPC、価格、画像、評価を含む詳細な商品1件
記事のスクレイピング$0.002タイトル、著者、日付、本文、画像を含むMacy’s Inc.ニュース記事1件

上位のApifyプランではボリュームディスカウントが自動適用されます(商品1件あたり最低$0.0045まで)。1,000商品のクロールは定価で約$6.00です。

Tips

  • レジデンシャルのUSプロキシを使いましょう。 商品詳細エンドポイントは断続的にレート制限がかかります。レジデンシャルのセッションローテーションならスムーズに通過しますが、データセンターIPは403エラーが増えます。
  • 同時実行数は控えめに保ちましょう。 maxConcurrencyは2〜3が最適値です——それ以上に上げてもスループットは向上せず、レート制限に引っかかる頻度が増えるだけです。
  • 裸のIDよりカテゴリURLを優先しましょう。 URLにはAPIが期待するカテゴリパスが含まれています。裸のIDでは、より広範囲な結果や空の結果になることがあります。
  • バリアントや商品説明が不要な場合はincludeProductDetailsをオフにしましょう。 名前、ブランド、リスト価格、画像、評価だけの高速なリスティングレベル取得になります。

よくある質問

ブラウザなしでどうやってAkamaiを突破しているのですか?
そもそもJSチャレンジと戦っていません。リスティングはMacy'sのモバイルアプリAPIから、商品詳細はWebサイトのJSON APIから取得しており、どちらも匿名の読み取りリクエストに応答する別インフラ上で動作しています。ログイン、Cookie、APIキーは一切不要です。
価格はドル単位ですか、それともセント単位ですか?
浮動小数点の丸め誤差を避けるためセント単位の整数です(5999=$59.99)。あわせてローカライズされたフォーマット済み文字列($59.99)も提供します。
バリアントとUPCはどのように扱われますか?
すべてのカラー・サイズは、variants[]配列を持つ単一の商品レコードにグループ化されます。各バリアントは、Macy'sのSKU関連データから復元された独自のUPCバーコード・カラー・サイズ・在庫状況・価格を保持しています——スウォッチウィジェットからスクレイピングしたものではありません。
商品とニュースを1回の実行でまとめてスクレイピングできますか?
はい。scrapeTypeをallに設定し、query、startUrls、categoryIds、trendingUrls、newsUrlsを任意に組み合わせて指定してください。

~/ecommerce の関連ツール

Macy's Scraper — 商品・価格・SKU・ニュースを取得を実行、またはカスタム開発を依頼

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

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