~/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

核心特性

一个 Actor 覆盖四大场景——商品搜索、分类、热门商品与 Macy's Inc. 新闻

无需浏览器即可绕过 Akamai Bot Manager,直接调用 Macy's 自有的移动端与网站 JSON API

每个可购买变体的 SKU 均附带 UPC 条码、颜色、尺码、库存状态与价格

价格以整数美分存储,并附带本地化格式化字符串——杜绝浮点数舍入误差

完整的评论情报——星级分布直方图、推荐数,以及版型/尺码等二级评分

所有色号与尺码归并到同一条商品记录下,而非一个变体一行

只输出干净的规范网址——内部 API 端点与客户端密钥绝不会泄露到输出结果中

search、category、trending 与商品详情结果统一采用同一套规范化 schema

应用场景

  • SKU 级别的百货商店价格与促销监控
  • 竞品分析——Macy's 对比 Nordstrom、Ulta 或品牌自营 DTC 定价
  • 通过每个变体的 UPC 条码实现跨零售商的商品目录匹配
  • 针对 Macy's 在售品牌的评论与评分情报
  • 零售新闻监控——Macy's Inc. 的新闻稿与财报公告

输入参数

参数类型必填说明
scrapeTypestring必填要抓取的场景:search、category、trending、news 或 all(默认:search)。
querystring可选商品搜索关键词,例如 women shoes。
startUrlsarray可选Macy's 商品页/分类页 URL,或 Macy's Inc. 新闻页 URL。
categoryIdsarray可选Macy's 分类 ID(例如 5449)。已知分类页 URL 时优先使用 URL。
trendingUrlsarray可选热门、畅销或精选榜单页 URL。
newsUrlsarray可选Macy's Inc. 新闻列表页或文章页 URL。
includeProductDetailsboolean可选为列表条目补全完整商品详情——变体、SKU、图库(默认:true)。
maxPagesnumber可选每个列表/新闻来源的最大分页深度。
maxResultsnumber可选输出记录数上限。0 表示不限。
proxyobject必填Apify Proxy 或自定义代理 URL。推荐使用美国住宅代理。

输出示例

 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}

价格

按事件计费——只对实际保存的条目计费:

事件价格说明
抓取一件商品$0.006一件完整商品详情——变体、SKU/UPC、价格、图片、评分
抓取一篇文章$0.002一篇 Macy’s Inc. 新闻文章——标题、作者、日期、正文、图片

更高级别的 Apify 套餐会自动享受批量折扣(低至每件商品 $0.0045)。按标价计算,抓取 1,000 件商品约为 $6.00。

使用建议

  • 使用美国住宅代理。 商品详情端点会间歇性触发速率限制;住宅代理的会话轮换能顺利通过,而数据中心 IP 会遇到更多 403 错误。
  • 保持适度并发。 maxConcurrency 设为 2–3 是最佳区间——更高的值只会增加触发速率限制的概率,而不会提升吞吐量。
  • 优先使用分类页 URL,而非裸 ID。 URL 中携带了 API 所需的分类路径;单独的 ID 可能会解析出范围过大或为空的结果集。
  • 不需要变体或描述信息时,可关闭 includeProductDetails,实现快速的列表级抓取(名称、品牌、列表价格、图片、评分)。

常见问题

在不使用浏览器的情况下,它是如何绕过 Akamai 的?
它根本不需要正面应对 JS 挑战。列表数据来自 Macy's 移动 App 的 API,商品详情来自网站自身的 JSON API——两者都运行在能够响应匿名读取请求的独立基础设施上。无需登录、无需 cookie、无需 API 密钥。
价格单位是美元还是美分?
以整数美分存储(5999 = $59.99),以避免浮点数舍入误差,同时附带本地化格式化字符串($59.99)。
变体与 UPC 是如何处理的?
所有颜色与尺码都归并在同一条商品记录的 variants[] 数组下。每个变体都携带各自的 UPC 条码、颜色、尺码、库存状态与价格——这些数据来自 Macy's 的 SKU 关系数据,而非从色卡组件上抓取。
可以在一次运行中同时抓取商品与新闻吗?
可以。将 scrapeType 设为 all,并按需组合提供 query、startUrls、categoryIds、trendingUrls 与 newsUrls。

~/ecommerce 下的相关工具

运行 Macy's Scraper——商品、价格、SKU 与新闻,或定制专属方案

几分钟内即可在 Apify 上开始提取数据,或聘请我为你的目标源和 schema 定制专属爬虫与 RAG 管道。

在 Apify 上运行 获取定制数据