# 如何抓取StockX和GOAT的转售数据进行市场研究

官方的StockX API是为卖家构建的，每天限制在25,000次调用。进行市场研究时，你需要访问公共页面——以下是如何干净地提取价格历史、尺码分布和热度信号的方法。

球鞋转售是一个真实的市场，具有真实的价格发现，而StockX和GOAT是其两个最大的订单簿。如果你想研究这个市场——追踪价格历史、测量尺码分布、发现哪些发布正在升温——本能是使用官方的StockX API。这通常是错误的工具。StockX开发者API是为卖家构建的：它在一个审批门后使用OAuth 2.0进行身份验证，旨在发布和管理列表和订单，并限制在每24小时25,000次请求，每秒一次请求，超过时会立即返回429错误。它给卖家他们自己的库存，而不是研究人员整个市场。对于市场研究，数据存在于公共产品页面上。本指南展示了如何干净地收集这些数据。

## 为什么官方StockX API不适合研究

开发者门户明确其用途：目录搜索、列表管理和订单管理。即使是平台上的卖家也报告说，在首次获得API访问批准时需要长时间等待和遭到拒绝。而速率上限——每天25,000次调用，批量操作限制在每5分钟500项，每天最多50,000项——对于经营自己的商店来说是慷慨的，但对于调查数千种风格的多个尺码和两个市场来说是微不足道的。关键是，它不会给你一个历史市场数据流：研究人员想要的数字——年度高低、波动性、零售溢价、每个尺码的销售速度——是在公共页面上计算和显示的，而不是作为批量研究端点公开的。

所以实际的划分很简单。如果你是一个自动化自己需求的卖家，请使用官方API。如果你在进行价格情报或趋势研究，请负责任地使用公共页面。同样的逻辑适用于转售和零售——我们在[大规模价格监控](https://quantumproxies.io/blog/competitor-price-monitoring-with-proxies)中走过一般版本。

API还存在一个覆盖问题无法解决。转售价格是地域敏感的：同一双鞋在美国市场与欧洲或日本市场的溢价不同，因为供应、税收和需求因地区而异。研究全球市场的研究人员需要从多个国家读取每个产品，而卖家API并非为此设计，但一个具有国家定位的轮换住宅池可以默认处理。这种地理维度通常是有趣套利隐藏的地方。

## StockX或GOAT产品页面包含哪些数据

每个产品页面在解析嵌入的JSON后都包含惊人丰富的负载。每种风格你可以读取一个稳定的SKU和UPC，每个尺码则是整个订单簿的一部分：

- **每个尺码的最低要价和最高出价**——实时的买卖价差告诉你真实的流动性。
- **每个尺码的总要价**——供应深度；一个有200多个要价的尺码并不稀缺，只有3个的则是。
- **15、30和60天窗口内的销售计数**——速度，这是最接近需求信号的东西。
- **年度统计**——高、低、平均价格，销售计数和每种风格的波动性数字。
- **零售溢价**——一个热门发布可以高于其零售价格约25%或更多；一个失败的则低于它。
- **每周订单计数**——一个粗略但诚实的目录受欢迎度排名。

![官方 StockX API 与公开商品页面并列：卖家 API 上限为每天 25,000 次调用、每秒 1 个请求，而公开页面承载着市场数据；卡片指出，API 只覆盖你自己的商品信息，且需通过 OAuth 2.0 审批，而页面上有价格历史、尺码价差和成交速度。](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335165/blog/generated/qp-b9-029-diag1.png)
*官方API是一个销售工具，每天限制在25,000次调用；公共页面则携带市场研究实际需要的价格历史、尺码级别的价差和速度。*

## 在不被封锁的情况下获取页面

StockX和GOAT在严密的机器人管理后面，而一个数据中心IP反复访问产品JSON会在几次请求内被挑战。保持收集活力的两件事是：看起来像普通购物者的住宅出口IP，以及每次请求的轮换，以便没有单个地址建立可疑模式。通过[住宅代理](https://quantumproxies.io/residential-proxies)——覆盖200多个国家的9000万+ IP——每个请求都来自不同的家庭地址：

```python
import requests, json

proxies = {
    "http":  "http://USER:PASS@residentialpremium.quantumproxies.io:8080",
    "https": "http://USER:PASS@residentialpremium.quantumproxies.io:8080",
}
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"}

url = "https://stockx.com/air-jordan-1-retro-high-og-example"
html = requests.get(url, proxies=proxies, headers=headers, timeout=(5, 30)).text

# Product data hydrates from an embedded JSON blob, not the visible HTML.
start = html.find('{"props":')
blob = json.loads(html[start:html.rindex("}", 0, html.find("</script>", start)) + 1])
# Walk blob -> product -> market to reach asks, bids and statistics.
```

当页面返回一个几乎空的外壳而不是JSON时，它被提供了一个客户端渲染或挑战版本——这是我们在[空白页面，缺失数据](https://quantumproxies.io/blog/scraper-returns-empty-page-javascript)中分解的症状。这是从原始代理升级到托管抓取的时机。[Scraper API](https://quantumproxies.io/scraper-api)按需渲染JavaScript并返回干净的JSON或markdown，因此你无需自己维护无头浏览器和解析器：

```bash
curl -X POST "https://api.quantumproxies.io/v1/scraper/extract" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://stockx.com/air-jordan-1-retro-high-og-example", "render": true, "country": "us"}'
```

## 将原始请求转化为研究信号

一旦解析了变体，分析就是将一堆数字转化为决策的小算术。尺码分布——最便宜和最贵尺码之间的差距——揭示了哪些尺码稀缺，而零售溢价则将真正的热度与营销噪音区分开来：

```python
def size_spread(variants):
    asks = [v["lowest_ask"] for v in variants if v.get("lowest_ask")]
    return {
        "cheapest_size": min(asks),
        "priciest_size": max(asks),
        "spread_pct": round((max(asks) - min(asks)) / min(asks) * 100, 1),
    }

def hype_score(stats, retail):
    premium = (stats["annual_average_price"] - retail) / retail
    return round(premium * 100, 1)  # % over retail; negative = a dud
```

在每日计划中运行一个监控列表，你就有了一个转售指数：上升的速度加上扩大的溢价是一个早期的热度信号，而下降的销售和缩小的溢价则标志着衰退。将StockX与GOAT的相同SKU进行交叉引用，揭示套利并确认哪个平台在特定类别中引领价格发现。如果你的监控列表涉及数千种风格，请通过[削减代理带宽成本](https://quantumproxies.io/blog/reduce-proxy-bandwidth-costs-scraping)中的策略控制你的账单——你很少需要图像，只需要JSON。

关于行为的一点说明：这是对公共、非个人定价数据的市场研究，这是抓取的低风险端，但你仍然应该尊重每个平台的服务条款，并礼貌地限制自己的速率。这是指导，而不是法律建议。

![以零售价为中心的球鞋转售价格刻度：热门发售的转售价约比零售价高 25% 或更多，而冷门款低于零售价且卖不动；卡片展示了两个关键信号：成交速度上升且溢价扩大代表热度，销量下滑且溢价收窄代表降温，观察窗口为 15、30 和 60 天。](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335166/blog/generated/qp-b9-029-diag2.png)
*重要的信号是速度和溢价：一双热门鞋远高于零售价格并快速销售，而失败的则低于零售价格并停滞。*

## 常见问题

### StockX有官方API吗？

有，但它是一个卖家工具，而不是市场数据服务。StockX开发者API在一个审批过程后使用OAuth 2.0进行身份验证，涵盖目录搜索、列表管理和订单管理。它限制在每24小时25,000次请求，每秒一次请求，并返回你自己的销售活动，而不是更广泛市场的批量历史数据。

### GOAT有球鞋价格的API吗？

GOAT不提供面向研究人员的公共定价API。第三方聚合器和开源项目通过抓取其公共页面来获取GOAT数据，这与你对StockX采取的方法相同。因为两个平台都使用强大的机器人管理，可靠的收集依赖于住宅IP和每次请求的轮换，而不是数据中心端点。

### 没有官方API我能获得哪些球鞋数据？

公共产品页面公开每个尺码的最低要价和最高出价、总要价、15、30和60天窗口内的销售计数、年度高/低/平均价格、波动性数字、每周订单速度和稳定的SKU/UPC标识符。这足以构建价格历史、尺码分布分析和热度指数，而无需接触卖家API。

### 如何避免在抓取StockX时被封锁？

使用住宅代理，使请求看起来像普通购物者，每次请求轮换出口IP，设置一个合理的User-Agent，并控制节奏。当页面返回一个空壳而不是嵌入的JSON时，切换到一个渲染抓取API，该API执行页面的JavaScript并返回结构化数据，而不是自己对抗挑战。

转售市场奖励那些能最好地测量它的人。官方API不会给你这种测量——它从未打算这样做。公共页面，收集在干净的住宅IP上，并简化为速度和溢价，将混乱的订单簿转化为你可以基于研究决策进行交易的信号。

[使用Scraper API提取干净的球鞋数据](https://quantumproxies.io/scraper-api)
