Proxies para scraping de Amazon: precios, Buy Box y Robot Check (2026)

Publicado el 12 de junio de 2026 · ≈8 min de lectura

Amazon es una mina de oro para el monitoreo de precios y la investigación de productos, y uno de los sitios más agresivamente defendidos de la web. Hazle scraping desde una IP de centro de datos y verás CAPTCHAs, el muro de "Robot Check", precios cambiantes o un 503 en apenas un puñado de solicitudes. Esta guía cubre qué verifica Amazon, la estrategia de proxy que la sobrevive y la disciplina de sesión que mantiene precisos los precios y los datos del Buy Box.

Qué detecta Amazon

Residencial, con geo igualada al marketplace

Los proxies de centro de datos son un callejón sin salida en Amazon a cualquier volumen real: los exits residenciales con ASNs limpios son los que lo sostienen. Igual de importante: haz coincidir el país del exit con el marketplace al que haces scraping. Sacar precios de amazon.de a través de un exit de EE. UU. te da precios, moneda y Buy Box de EE. UU., lo que corrompe silenciosamente tu conjunto de datos. Una geografía de exit por marketplace.

Sesiones sticky para precios precisos

Amazon personaliza por sesión: añadir al carrito, ubicación de entrega y pruebas de precio viven todos en cookies. Si rotas la IP en cada solicitud, restableces ese contexto constantemente y obtienes precios y ganadores del Buy Box inconsistentes. Mantén una sesión sticky (persistente) durante todo el scrape de un producto, y luego rota en el límite del producto o la tarea:

import itertools, time, random
from curl_cffi import requests

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

def scrape_product(asin, proxy):
    # Same sticky exit for every page of this product
    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)                 # new sticky exit per product
    if "Robot Check" in scrape_product(asin, proxy)[0]:
        # flagged - back off, rotate, retry on a fresh exit
        ...
    time.sleep(random.uniform(2.0, 5.0))

Limita la tasa por exit y haz backoff

Igual que con el scraping de SERP de Google, la disciplina que te mantiene con vida es la tasa por exit, no el tamaño del pool. Aleatoriza los intervalos, limita la concurrencia por IP, y cuando veas "Robot Check" o un 503, deja de golpear ese exit y haz backoff — reintentar sobre una IP marcada solo alarga el bloqueo.

No apiles una huella de Python

Una simple llamada con requests envía un JA3 que te marca como automatización antes incluso de que se aplique la puntuación de la IP. Envía una huella de navegador con curl_cffi (arriba) o un navegador real — consulta Evade el fingerprinting de TLS con curl_cffi. Si Amazon lanza un muro de CAPTCHA basado en JS, escala a un motor de navegador real.

Lista de comprobación

Para todos los productos IP · un enorme pool de nodos disponibles en cualquier momento

Regístrate ahora y obtén hasta un 100% de reembolso en tu recarga

Los nuevos usuarios reciben 500MB al registrarse, más un bono en la primera recarga. Oferta por tiempo limitado.