Amazon 抓取代理:价格、Buy Box 与 Robot Check(2026)

发布于 2026年6月12日 · 阅读约 8 分钟

Amazon 是价格监控和选品的金矿,也是全网防御最凶的站点之一。用机房 IP 去抓,几个请求内就会撞验证码、「Robot Check」墙、价格乱跳,或 503。这篇讲清 Amazon 查什么、什么样的代理策略扛得住,以及让价格和 Buy Box 数据保持准确的会话纪律。

Amazon 检测什么

住宅代理,且地理对上站点

机房代理在 Amazon 上量就是死路——ASN 干净的住宅出口才撑得住。同样重要:出口国家要对上你抓的站点。用美国出口拉 amazon.de 价格,拿到的是美国定价、货币和 Buy Box,悄悄污染你的数据集。一个站点一种出口地理。

Sticky 会话保价格准

Amazon 按会话个性化——加购、配送地、价格测试都存在 cookie 里。每个请求都轮换 IP,你就不停重置这个上下文,拿到不一致的价格和 Buy Box 赢家。对一个商品的整次抓取保持一条 sticky 会话,然后在商品或任务边界轮换:

import itertools, time, random
from curl_cffi import requests

PROXIES = ["socks5h://USERNAME:[email protected]:913", "..."]
pool = itertools.cycle(PROXIES)

def scrape_product(asin, proxy):
    # 这个商品每一页都走同一条 sticky 出口
    s = requests.Session(impersonate="chrome",
                         proxies={"http": proxy, "https": proxy})
    detail = s.get(f"https://www.amazon.com/dp/{asin}")
    offers = s.get(f"https://www.amazon.com/gp/offer-listing/{asin}")
    return detail.text, offers.text

for asin in asins:
    proxy = next(pool)                 # 每个商品换一条 sticky 出口
    if "Robot Check" in scrape_product(asin, proxy)[0]:
        # 被标记——退避、轮换、换新出口重试
        ...
    time.sleep(random.uniform(2.0, 5.0))

按出口限速并退避

抓 Google SERP 一样,保命的纪律是每个出口的速率,不是池子大小。随机化间隔、给每个 IP 的并发设上限,看到「Robot Check」或 503 就别再打那个出口、退避——重试进被标记的 IP 只会延长封禁。

别叠一个 Python 指纹

一个普通 requests 调用发的 JA3 在 IP 分还没生效之前就把你标成自动化。用 curl_cffi(上面)或真实浏览器发浏览器指纹——见 用 curl_cffi 绕过 TLS 指纹。如果 Amazon 扔出 JS 验证码墙,升级到真实浏览器引擎。

清单

所有IP产品通用 · 海量节点随时可用

现在加入,立享最高100%充值返现

新用户注册即送500M免费流量,首次充值额外加赠,活动期间限时开放。