Amazon Scraper: cómo recopilar datos de productos, ASIN y reseñas

Tu exportación de productos de Amazon parece lista para el análisis hasta que revisas algunas filas. Dos precios pertenecen a diferentes tamaños, las estimaciones de entrega reflejan diferentes códigos postales y las reseñas recopiladas cubren solo parte de los comentarios que esperabas. Esas brechas pueden distorsionar una comparación de precios o enviar la investigación de productos en la dirección equivocada.
Un Amazon scraper te ayuda a recopilar datos, pero los resultados útiles dependen de cómo configures el trabajo y verifiques su salida. Esta guía te acompaña en la elección entre Python, web scraping APIs y herramientas sin código, luego recopilando detalles de productos, ASINs y reseñas con configuraciones consistentes. También aprenderás cómo verificar la precisión de la ubicación, manejar campos faltantes y construir un flujo de trabajo repetible antes de escalar.
TL;DR
Elige tu método: Construye un Amazon scraper con Python cuando necesites lógica personalizada y puedas mantener el código. Elige una API administrada para reducir el trabajo de extracción, o una herramienta sin código para exportaciones rápidas con configuración mínima.
Usa proxies donde el flujo de trabajo los necesite: Los proxies proporcionan enrutamiento de red y control de IP para scripts personalizados. Ajusta la rotación o sesiones sticky a la tarea, luego verifica la configuración de entrega de Amazon y los datos extraídos.
Mantén las comparaciones consistentes: Guarda el ASIN, variante seleccionada, vendedor, precio, moneda, marketplace, código postal de entrega, URL de origen y marca de tiempo de recopilación.
Verifica la cobertura de reseñas por separado: Los filtros, la paginación y los límites de acceso pueden restringir tu muestra. Registra lo que recopilaste en lugar de asumir que la exportación contiene todas las reseñas.
¿Qué es un Amazon scraper y qué datos puede recopilar?
Un Amazon scraper es una herramienta que extrae información de páginas de Amazon y la organiza en registros estructurados, como un archivo CSV, hoja de cálculo o salida JSON. En lugar de copiar manualmente los detalles del producto, proporcionas URLs, términos de búsqueda o ASINs, según la herramienta, y especificas la información que necesitas.
Los campos comunes incluyen títulos de productos, ASINs, marcas, precios, monedas, variantes seleccionadas, nombres de vendedores, disponibilidad, calificaciones y conteos de reseñas. Algunas herramientas también recopilan listados de búsqueda y reseñas individuales de clientes, aunque la cobertura depende de la herramienta y de lo que pueda acceder.
Las empresas usan estos datos para monitorear precios, comparar productos competidores, rastrear cambios de surtido y analizar comentarios de clientes. Para hacer scraping de datos de productos de Amazon que respalde comparaciones confiables, cada registro necesita contexto: qué variante y vendedor representa, la ubicación de entrega aplicada y cuándo se recopiló la información.
Detalles de productos, precios, vendedores y disponibilidad
Elige campos que te permitan identificar el producto exacto y comprender la oferta asociada a él. Un precio solo te dice poco si no puedes confirmar el tamaño, vendedor o moneda.
Campo | Qué capturar |
Título y marca | El nombre del producto y la marca mostrados para identificación y agrupación. |
ASIN | El identificador de Amazon asociado con el producto que se está recopilando. |
Variante seleccionada | Tamaño, color, capacidad, cantidad de paquete u otras opciones seleccionadas. |
Precio y moneda | El precio de oferta mostrado y su moneda, con cupones o descuentos condicionales registrados por separado. |
Vendedor | El vendedor asociado a la oferta; mantén la información de cumplimiento separada cuando esté disponible. |
Disponibilidad | El estado mostrado, como en stock, temporalmente no disponible o disponible para preorden. |
Estimación de entrega | La fecha o rango de entrega mostrado para el destino seleccionado. |
URL de origen | La dirección de la página para que puedas rastrear y verificar el registro. |
Consejo profesional: Guarda la marca de tiempo de recopilación y el código postal de entrega junto con estos campos para que las comparaciones posteriores conserven su contexto original.
Resultados de búsqueda, calificaciones y reseñas de clientes
Un scraper de Amazon puede recopilar varios tipos de datos, pero cada uno responde a una pregunta diferente. Los resultados de búsqueda muestran qué listados aparecen para una consulta, mientras que las páginas de productos describen un producto seleccionado y su oferta mostrada. Las calificaciones agregadas resumen las puntuaciones de los clientes; los registros de reseñas individuales proporcionan los comentarios escritos detrás de algunas de esas puntuaciones.
Tipo de datos | Campos útiles | Aplicación empresarial | Limitación a verificar |
Resultados de búsqueda | Consulta, ASIN, título, posición, precio mostrado, etiqueta de patrocinado | Rastrear la visibilidad del producto y descubrir listados competidores | La posición depende de la consulta y el contexto de recopilación; separa las ubicaciones patrocinadas de los resultados orgánicos. |
Páginas de productos | ASIN, variante, precio, vendedor, disponibilidad | Comparar ofertas y monitorear cambios de productos | Confirma la variante seleccionada, el vendedor y la ubicación de entrega antes de comparar registros. |
Calificaciones agregadas | Calificación promedio de estrellas, recuento total de calificaciones, distribución de estrellas cuando esté disponible | Monitorear el sentimiento general del cliente | Un recuento de calificaciones no es igual al número de reseñas escritas disponibles para recopilar. |
Reseñas individuales | ID de reseña, estrellas, título, texto, fecha, indicador de compra verificada | Identificar quejas recurrentes y fortalezas del producto | Los filtros, la ordenación y los límites de acceso pueden producir una muestra incompleta o sesgada. |
Al hacer scraping de datos de productos de Amazon, mantén estos conjuntos de datos conectados a través de identificadores como los ASIN mientras preservas sus significados separados.
Configura el acceso proxy para tu scraper de Amazon con CyberYozh App
CyberYozh App proporciona infraestructura proxy para controlar la conexión de red que utiliza tu scraper de Amazon. Ajusta el tipo de proxy y el comportamiento de sesión a tu proceso de recopilación, luego evalúa el rendimiento utilizando registros extraídos correctamente en lugar del éxito de conexión únicamente.
Elige sesiones residenciales rotativas o sticky para la tarea
Las conexiones residenciales rotativas se adaptan a trabajos de recopilación independientes que no necesitan retener la misma dirección de red entre tareas. Para solicitudes relacionadas, como establecer una ubicación de entrega y abrir varias páginas de productos, utiliza una sesión sticky para mantener la IP mientras tu aplicación conserva sus cookies y estado del navegador.
Los proxies residenciales rotativos de CyberYozh admiten sesiones rotativas y sticky, acceso completo a API y transferencia mensual de tráfico. La facturación basada en uso con transferencia se ajusta a investigaciones recurrentes cuyo volumen cambia entre períodos más tranquilos y ejecuciones de recopilación más grandes, porque el tráfico no utilizado se transfiere al siguiente mes de facturación.
Evalúa las opciones móviles, ISP estáticas y de datacenter
Compara estas opciones utilizando la misma muestra de productos, requisitos de ubicación y criterios de aceptación.
Tipo de proxy | Dónde puede encajar | Qué evaluar |
Recopilación recurrente donde el acceso a red de operador y el control sobre cambios de IP son útiles | Ubicaciones disponibles, comportamiento de rotación, rendimiento y resultados utilizables bajo tu carga de trabajo | |
Trabajos que se benefician de mantener una IP dedicada a través de sesiones repetidas | Continuidad de sesión, idoneidad de ubicación y rendimiento a lo largo del tiempo | |
Cargas de trabajo donde la velocidad de conexión y el costo de infraestructura son prioridades | Si tus páginas objetivo devuelven datos completos y utilizables a un costo aceptable |
Consejo profesional: CyberYozh App ofrece tráfico ilimitado en sus planes móvil, ISP estático y datacenter. Esto puede hacer que el gasto en ancho de banda sea más predecible para recopilación frecuente, mientras que los paquetes residenciales rotativos permanecen basados en tráfico ya que el tráfico no utilizado se transfiere automáticamente al siguiente mes de facturación. Verifica la ubicación, velocidad y condiciones de conexión del plan seleccionado antes de ordenar.
Conectar, verificar y monitorear el flujo de trabajo
Conecta el proxy a través de tu cliente HTTP de Python o la configuración de proxy compatible con automatizaciones como Scrapy, Playwright, Puppeteer, Selenium u otro framework compatible. CyberYozh proporciona acceso completo a API y soporte de integración, mientras que la configuración exacta depende de la herramienta y el protocolo de proxy seleccionado.
Sigue esta secuencia de configuración:
Recupera los detalles de conexión. Copia el host, puerto, protocolo y detalles de autenticación de tu configuración de proxy. Mantén las credenciales en variables de entorno o un administrador de secretos.
Configura el comportamiento de sesión. Elige rotación para trabajos independientes o una sesión persistente para solicitudes relacionadas. Preserva las cookies por separado en tu aplicación.
Verifica la conexión de salida. Confirma que las solicitudes usan el proxy y que su región observada coincide con tu selección.
Verifica el contexto de entrega de Amazon. Aplica y verifica el destino en la página del producto independientemente de la ubicación del proxy.
Ejecuta un trabajo de recopilación pequeño. Monitorea registros utilizables, tiempos de respuesta, campos faltantes, consumo de tráfico y fallos repetidos antes de aumentar el volumen.
Las verificaciones de reputación de IP de CyberYozh pueden proporcionar contexto adicional al investigar problemas de conexión.
Elige tu scraper de Amazon: Python, API o herramienta sin código
Elige tu scraper de Amazon según la frecuencia con que necesitas datos, cuánto control requiere el trabajo y quién lo mantendrá. Una comparación de productos única tiene demandas diferentes a un trabajo de recopilación diario que alimenta un panel interno.
Python se adapta a flujos de trabajo que necesitan reglas de extracción, validación o almacenamiento personalizados. Tú controlas el código, pero tu equipo también maneja errores de análisis, cambios de página y mantenimiento continuo.
Una API administrada es adecuada para la recopilación recurrente cuando deseas que el proveedor maneje la mayor parte del trabajo de extracción. Antes de comprometerte, verifica si devuelve los campos requeridos, admite tus ubicaciones objetivo y cobra por solicitudes o resultados utilizables.
Un web scraper sin código funciona bien para investigaciones rápidas y exportaciones sencillas. Verifica sus límites de lotes, opciones de programación y controles de personalización si esperas que la carga de trabajo crezca.
Python para recopilación y validación personalizadas
Python te da control sobre lo que tu scraper de Amazon recopila y qué sucede con cada registro después. Puedes seleccionar los campos que necesita tu investigación, programar la recopilación según los plazos de informes y guardar los resultados directamente en archivos CSV, bases de datos o sistemas internos. Las reglas de validación personalizadas pueden marcar una moneda faltante, un ASIN inesperado o una variante modificada antes de que el registro llegue a tu análisis.
También controlas cómo el scraper maneja los fallos. Por ejemplo, puedes reintentar un error de conexión temporal dentro de un límite definido, registrar un producto no disponible por separado y pausar un trabajo cuando las respuestas repetidas contengan contenido inesperado.
Una API de scraper de Amazon para extracción administrada
Una API de scraper de Amazon permite que tu aplicación solicite datos sin mantener cada parte del proceso de recopilación tú mismo. Dependiendo del servicio, el proveedor maneja la recuperación de páginas, infraestructura de proxies, reintentos, renderizado y análisis, y luego devuelve resultados estructurados. Verifica qué está incluido: algunos endpoints devuelven contenido de página sin procesar que aún necesita extracción.
Tu responsabilidad es confirmar que la salida coincida con el trabajo. Prueba los campos de producto requeridos, verifica que se apliquen las configuraciones de ubicación de entrega y comprueba la cobertura de reseñas por separado del soporte de páginas de producto. Pregunta si los resultados se recopilan bajo demanda o se sirven desde una caché, particularmente al rastrear precios o disponibilidad.
Herramientas sin código para exportaciones pequeñas e investigación rápida
Las extensiones de navegador y scrapers prediseñados son prácticos para recopilar una lista corta de productos competidores, verificar precios mostrados o exportar listados para un informe de investigación. Normalmente proporcionas URLs de productos o abres una página compatible, eliges los campos disponibles y exportas los resultados sin escribir código de recopilación.
Verifica cómo funciona la herramienta antes de confiar en ella para trabajo repetitivo. Una extensión de navegador puede requerir que tu navegador permanezca abierto, mientras que un scraper alojado puede admitir trabajos programados. Verifica los límites de lotes, formatos de exportación, programación y si las configuraciones de ubicación de entrega persisten entre ejecuciones.
¿Existe una API oficial de Amazon para web scraping?
Amazon proporciona APIs oficiales para usos comerciales definidos, pero estas difieren de los servicios de terceros que extraen contenido de sitios web. Si estás buscando una API de Amazon para web scraping, primero verifica si una API oficial proporciona la información que necesita tu proyecto.
La Selling Partner API (SP-API) admite flujos de trabajo autorizados de vendedores y proveedores. El acceso depende de la aplicación, los roles requeridos y el proceso de autorización relevante; tener solo una cuenta de compras de Amazon no otorga acceso. Las aplicaciones públicas generalmente requieren autorización de selling-partner, mientras que las aplicaciones privadas usan autoautorización.
Amazon también ofrece una Customer Feedback API, que proporciona información sobre reseñas a nivel de ASIN y categoría de producto, además de información sobre devoluciones a nivel de categoría. Cubre temas y tendencias en lugar de proporcionar una exportación completa de cada reseña individual. El acceso requiere un rol elegible, como Brand Analytics o Selling Partner Insights.
Una API de scraper de Amazon de terceros es un servicio de extracción de un proveedor independiente. Sus credenciales, campos admitidos y facturación pertenecen a ese proveedor, y suscribirse no otorga autorización de Amazon.
Método | Mejor opción | Esfuerzo de configuración | Mantenimiento | Modelo de costos |
Scraper Python personalizado | Campos personalizados, validación y flujos de trabajo de almacenamiento | Mayor: construir y probar código de recopilación | Tu equipo mantiene el análisis, las dependencias y el manejo de errores | Desarrollo, alojamiento y cualquier costo de proxy |
API de scraping administrada | Recopilación recurrente con menos infraestructura de extracción que mantener | Moderado: integrar la API y validar la salida | El proveedor mantiene la extracción; tú mantienes la integración y las verificaciones de datos | Solicitudes, créditos, registros o suscripción |
Herramienta sin código | Investigación rápida y exportaciones sencillas | Menor: configurar entradas y campos disponibles | Verificar plantillas, trabajos fallidos y calidad de exportación | Asignación gratuita, suscripción o créditos de uso |
API oficial de Amazon | Flujos de trabajo empresariales compatibles con el acceso requerido | Varía: registro, roles, autorización e integración | Mantener permisos, compatibilidad de API y manejo de datos | Verificar tarifas del programa aplicables y costos de integración |
Cómo hacer scraping de datos de productos de Amazon con Python
Un tutorial útil de Python debería llevarte desde una URL de producto hasta un registro estructurado que puedas inspeccionar. Construiremos ese flujo de trabajo en etapas: definir los campos requeridos, configurar el proyecto, obtener una página, extraer los detalles del producto y exportar los resultados a CSV o JSON.
Comienza con un pequeño conjunto de URLs de productos para que puedas comparar la salida con las páginas de origen. Cada registro debe preservar el ASIN, la variante seleccionada, el precio, la moneda y la marca de tiempo de recopilación, con los valores faltantes claramente marcados.
Define tus campos, marketplace y alcance de recopilación
Antes de escribir el scraper, decide qué debe contener un registro completo y qué condiciones deben permanecer consistentes entre ejecuciones. Para este tutorial, comienza con una pequeña lista de URLs de productos de un marketplace de Amazon.
Configuración | Qué definir |
Marketplace | Elige el dominio de Amazon que deseas investigar, como Amazon.com para EE. UU. |
URLs de entrada | Usa URLs específicas de páginas de productos e identifica las variantes que pretendes rastrear. |
Campos requeridos | Comienza con ASIN, título, variante seleccionada, precio, moneda, disponibilidad, URL de origen y marca de tiempo de recopilación. Agrega detalles del vendedor y de entrega si tu análisis los necesita. |
Contexto de entrega | Elige el país de destino y el código postal, luego verifica que el método de recopilación los aplique. Registra las configuraciones no verificadas como desconocidas. |
Frecuencia de recolección | Ajusta el cronograma a la decisión que los datos respaldan, comenzando con una sola ejecución antes de introducir trabajos recurrentes. |
Define qué campos faltantes hacen que un registro sea inutilizable. Un precio faltante, por ejemplo, impide una comparación de precios pero aún puede dejar información útil sobre disponibilidad. Preserva esa distinción para que tu scraper de Amazon pueda marcar registros incompletos sin descartar observaciones válidas.
Configura tu proyecto de scraper de Amazon en Python
Comienza con un entorno virtual para mantener las dependencias del proyecto separadas de otras aplicaciones Python. Esta configuración fue verificada con Python 3.12.14, Requests 2.34.2 y Beautiful Soup 4.15.0. La instalación, importaciones y análisis de HTML de muestra pasaron; la extracción en vivo de Amazon no ha sido probada en esta etapa.
Requests maneja las solicitudes HTTP, mientras que Beautiful Soup extrae campos del HTML devuelto. Ninguno ejecuta JavaScript.
Crea la carpeta del proyecto y el entorno virtual:
mkdir amazon-scraper
cd amazon-scraper
python -m venv .venvActiva el entorno usando el comando para tu sistema operativo.
macOS o Linux
source .venv/bin/activateWindows
.\.venv\Scripts\Activate.ps1 Instala las versiones de dependencias verificadas:
python -m pip install requests==2.34.2 beautifulsoup4==4.15.0Crea un archivo llamado amazon_scraper.py y agrega la configuración inicial a continuación. Inserta tus URLs de productos objetivo en PRODUCT_URLS, manteniendo cada URL entre comillas y separando las entradas con comas.
</> python
import os
from urllib.parse import urlparse
import requests
from bs4 import BeautifulSoup
MARKETPLACE = "www.amazon.com"
REQUEST_TIMEOUT = 30
OUTPUT_FILE = "amazon_products.csv"
PRODUCT_URLS = [
# Add your target Amazon product URLs here.
]
for url in PRODUCT_URLS:
parsed = urlparse(url)
if parsed.scheme != "https" or parsed.hostname != MARKETPLACE:
raise ValueError("Each URL must use the selected marketplace.")
session = requests.Session()
# Optional: supply the full proxy URL through your environment.
proxy_url = os.environ.get("AMAZON_PROXY_URL")
if proxy_url:
session.proxies.update({
"http": proxy_url,
"https": proxy_url,
})Mantén las contraseñas de proxy y claves API en variables de entorno proporcionadas a través de tu entorno de desarrollo o gestor de secretos de despliegue. Evita incrustar credenciales en el script, confirmarlas en Git o imprimirlas en los registros.
Consejo: Esta configuración prepara la sesión pero no obtiene páginas de productos ni establece el código postal de entrega de Amazon. Deja el contexto de entrega sin verificar hasta que el flujo de trabajo de recolección lo aplique y verifique explícitamente.
Obtén una página de producto y verifica qué se recibió
Una respuesta HTTP exitosa no garantiza que tu scraper de Amazon haya recibido la página del producto. Un servidor puede devolver HTTP 200 OK con un desafío, pantalla de inicio de sesión u otra página inesperada, así que verifica tanto el estado de la respuesta como el contenido antes de extraer los campos del producto.
Agrega la función a continuación después de tu configuración de sesión. Verifica fallas de solicitud, redirecciones inesperadas, respuestas no HTML, indicadores de desafío comunes y un elemento de título de producto.
def fetch_product_page(url):
try:
response = session.get(url, timeout=REQUEST_TIMEOUT)
response.raise_for_status()
except requests.RequestException:
# Avoid logging exception details that could expose proxy credentials.
raise RuntimeError(
"Request failed. Check connectivity and the HTTP response."
) from None
if urlparse(response.url).hostname != MARKETPLACE:
raise RuntimeError("The request redirected to another domain.")
content_type = response.headers.get("Content-Type", "").lower()
if "text/html" not in content_type:
raise RuntimeError("Expected HTML but received another content type.")
soup = BeautifulSoup(response.text, "html.parser")
page_text = soup.get_text(" ", strip=True).lower()
challenge_markers = (
"enter the characters you see below",
"sorry, we just need to make sure you're not a robot",
"validatecaptcha",
)
if (
soup.select_one('form[action*="validateCaptcha"]')
or any(marker in page_text for marker in challenge_markers)
):
raise RuntimeError(
"A challenge page was returned. Pause and review the request."
)
title = soup.select_one("#productTitle")
if title is None or not title.get_text(strip=True):
raise RuntimeError(
"Product title not found. The page may be unexpected "
"or its structure may have changed."
)
return soup, response.urlLlama a la función para una URL antes de procesar la lista completa:
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
print("Page passed the initial checks.")
print("Title:", soup.select_one("#productTitle").get_text(strip=True))
except RuntimeError as error:
print("Collection stopped:", error)Beautiful Soup analiza el HTML aquí para inspeccionar su estructura; la extracción del registro del producto viene a continuación. Estas verificaciones son preliminares: la redacción del desafío y los diseños de página pueden cambiar, y encontrar un título no confirma el ASIN solicitado, la variante seleccionada o la ubicación de entrega. Verifica esos elementos por separado antes de aceptar el registro.
Extrae campos de producto y maneja valores faltantes
Una vez que la página pasa las verificaciones iniciales, extrae un pequeño conjunto de campos: ASIN, título, precio mostrado y disponibilidad. Mantén la URL de origen y la marca de tiempo de recolección con cada registro para que puedas rastrearlo después.
Usa None cuando falte un campo. Un precio faltante podría significar que la oferta no está disponible, que la página requiere otra selección o que el selector ya no coincide. Convertirlo a cero introduciría un precio falso en tu análisis.
Agrega lo siguiente debajo de tus funciones existentes.
from datetime import datetime, timezone
def text_or_none(soup, selector):
element = soup.select_one(selector)
if element is None:
return None
return element.get_text(" ", strip=True) or None
def extract_product_fields(soup, source_url):
asin_element = soup.select_one("input#ASIN")
asin = (
asin_element.get("value", "").strip() or None
if asin_element is not None
else None
)
# Limit extraction to the main price area to reduce the chance
# of collecting a price from recommendations or another offer.
price_text = text_or_none(
soup,
"#corePriceDisplay_desktop_feature_div "
".priceToPay .a-offscreen",
)
return {
"asin": asin,
"title": text_or_none(soup, "#productTitle"),
"price_text": price_text,
"availability_text": text_or_none(soup, "#availability"),
"source_url": source_url,
"collected_at": datetime.now(timezone.utc).isoformat(),
}Mantén el precio como texto mostrado en esta etapa. Separar su valor numérico y moneda requiere validación contra el formato del marketplace; un símbolo de moneda solo puede ser ambiguo.
Después de una obtención exitosa, llama a la función de extracción:
record = extract_product_fields(soup, final_url)
missing_fields = [
field
for field in ("asin", "title", "price_text", "availability_text")
if record[field] is None
]
print(record)
print("Missing fields:", missing_fields)Coloca esta llamada dentro del bloque try exitoso del paso anterior, inmediatamente después de fetch_product_page(), para que la extracción no se ejecute después de una solicitud fallida.
Un valor faltante debe activar una inspección en lugar de una búsqueda más amplia de cualquier precio en la página. Antes de usar el registro para comparaciones, también verifica el ASIN solicitado, la variante seleccionada, el vendedor y el contexto de entrega.
Exporta a CSV o JSON y valida una muestra
Exporta cada registro de producto con su URL de origen, marca de tiempo de recolección, marketplace y contexto de entrega. Mantén el código postal solicitado separado de la ubicación realmente observada en la página: ingresar un objetivo en tu configuración no prueba que Amazon lo haya aplicado.
JSON preserva los valores faltantes como null, mientras que esta exportación CSV los deja en blanco. Ningún formato debe reemplazar un precio faltante con cero.
Agrega esta función debajo de tus funciones existentes.
import csv
import json
def export_records(records, csv_path, json_path):
if not records:
raise ValueError("No records to export.")
fields = list(records[0])
with open(csv_path, "w", encoding="utf-8", newline="") as file:
writer = csv.DictWriter(file, fieldnames=fields)
writer.writeheader()
writer.writerows(records)
with open(json_path, "w", encoding="utf-8") as file:
json.dump(
records,
file,
ensure_ascii=False,
indent=2,
allow_nan=False,
)Reemplaza el bloque de prueba de URL única anterior con lo siguiente. Conecta la obtención, extracción y exportación usando las funciones ya definidas.
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
# Leave unknown until you implement delivery-location controls.
REQUESTED_DELIVERY_ZIP = None
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
record = extract_product_fields(soup, final_url)
record.update({
"marketplace": urlparse(final_url).hostname,
"requested_delivery_zip": REQUESTED_DELIVERY_ZIP,
"observed_delivery_zip": None,
"delivery_location_verified": False,
})
export_records(
[record],
OUTPUT_FILE,
"amazon_products.json",
)
print("Exported one record. Validate it before using it.")
except (RuntimeError, ValueError, OSError) as error:
print("Job stopped:", type(error).__name__)El siguiente es un ejemplo que muestra cómo aparecen los campos faltantes.
{
"asin": null,
"title": "Sample product, blue",
"price_text": null,
"availability_text": null,
"source_url": "https://www.amazon.com/dp/EXAMPLE123",
"collected_at": "2026-10-14T14:00:00+00:00",
"marketplace": "www.amazon.com",
"requested_delivery_zip": null,
"observed_delivery_zip": null,
"delivery_location_verified": false
}Verificación de validación: La función de exportación fue probada en Python 3.12.14 con un registro de muestra. JSON preservó los valores faltantes y la bandera booleana de ubicación, CSV preservó un título que contenía una coma y dejó los valores faltantes en blanco, y la entrada vacía fue rechazada. Esto verifica el comportamiento de exportación; no verifica la recuperación en vivo de Amazon ni los selectores.
Antes de programar tu proyecto de scraper de Amazon en Python, inspecciona algunos registros comparándolos con sus páginas de origen:
Confirma que el ASIN, la variante seleccionada y el vendedor coincidan con el producto y la oferta previstos.
Compara el precio y la moneda mostrados bajo la misma configuración de entrega.
Verifica las marcas de tiempo y las URL de origen, e investiga los campos requeridos faltantes.
Mantén los registros dependientes de la ubicación fuera de las comparaciones hasta que su contexto de entrega sea verificado.
Las fallas esperadas incluyen solicitudes bloqueadas, diseños de página modificados, detalles de oferta faltantes y errores de escritura de archivos. Un registro parcial aún puede contener información útil, pero no debe pasar como una observación de precio completa.
Aprender cómo hacer scraping de Amazon incluye reconocer esos límites. Si quieres entender cómo extraer datos de Amazon de manera confiable, valida los registros guardados antes de aumentar el volumen de recopilación.
Cómo usar un scraper de ASIN de Amazon sin mezclar productos
Un scraper de ASIN de Amazon te ayuda a construir una lista de identificadores de productos y recuperar sus detalles asociados. Para comparaciones confiables, mantén esos identificadores conectados al marketplace correcto, la variante seleccionada y la oferta del vendedor. De lo contrario, un cambio entre productos u ofertas puede parecer un cambio de precio.
¿Qué es un número de identificación estándar de Amazon?
Un número de identificación estándar de Amazon (ASIN) es un identificador alfanumérico de 10 caracteres utilizado para identificar un artículo en el catálogo de Amazon. Proporciona a tu flujo de trabajo de recopilación una referencia más precisa que un título de producto, que puede cambiar o parecerse a otros listados.
Almacena el marketplace junto con cada ASIN y distingue el identificador del SKU del vendedor. El ASIN identifica el artículo del catálogo, mientras que un SKU de vendedor identifica un listado dentro del propio sistema de inventario de ese vendedor. Las APIs de Amazon utilizan estos identificadores para diferentes operaciones.
Extraer ASINs de URLs de productos y resultados de búsqueda
Trata el descubrimiento de ASIN como un paso separado de la recopilación de precios, disponibilidad y otros detalles del producto. Una lista de identificadores le indica a tu scraper qué artículos investigar; no confirma cuánto cuestan actualmente esos artículos.
Usa esta secuencia cuando extraigas datos de ASIN de Amazon:
Descubre identificadores candidatos. Extráelos de enlaces de productos o atributos de listados en el HTML de la página de resultados de búsqueda devuelto. Preserva la URL de origen y, para resultados de búsqueda, la consulta y la posición.
Valida el formato. Verifica que haya exactamente 10 letras o dígitos. Pasar esta verificación solo confirma la forma esperada, no que el ASIN exista o represente tu variante prevista.
Deduplica la cola de recopilación. Usa el marketplace y el ASIN juntos para evitar obtener el mismo artículo del catálogo repetidamente.
Obtén y verifica los detalles del producto. Compara el identificador descubierto con el artículo realmente devuelto, luego verifica la variante seleccionada antes de aceptar sus datos de oferta.
Mantén las observaciones de búsqueda separadas de la cola deduplicada. Un ASIN que aparece bajo dos consultas puede requerir solo una obtención de producto, pero ambas apariciones pueden importar para el análisis de visibilidad.
Mantén separados los productos padre, las variantes hijo y las ofertas de vendedores
Un ASIN padre agrupa variaciones relacionadas y no es en sí mismo una oferta comprable. Un ASIN hijo identifica una variación particular, como una combinación de tamaño y color. Las ofertas de vendedores se encuentran debajo de esa identidad de producto y describen quién lo vende, en qué condición y a qué precio.
Considera este ejemplo ilustrativo:
Nivel | Ejemplo | Lo que tu scraper debe preservar |
Familia de productos | Una camiseta ofrecida en varios tamaños y colores | ASIN padre y su relación con los productos hijos |
Variante seleccionada | Camiseta azul, talla mediana | ASIN hijo, color y talla |
Oferta del vendedor | El vendedor A ofrece esa variante nueva por $18, más $3 de envío | Identificador del vendedor, condición, precio del artículo, envío y hora de recopilación |
Supongamos que la siguiente ejecución captura una camiseta azul en talla grande por $24. Esa es una variante diferente, por lo que reportar un aumento de $6 sería engañoso. Si en cambio la camiseta mediana aparece a $20 del vendedor B, la oferta observada ha cambiado, pero eso no establece que el vendedor A aumentó su precio.
Para el monitoreo de precios, compara el mismo marketplace, ASIN hijo, vendedor, condición y contexto de entrega a través de los tiempos de recopilación. Si tu objetivo es rastrear cualquier oferta que Amazon muestre, registra los cambios de vendedor explícitamente para que puedas explicar qué cambió.
Cómo hacer scraping de reseñas de Amazon y medir la cobertura
Para entender cómo hacer scraping de reseñas de Amazon de manera confiable, comienza definiendo los comentarios que necesitas y verificando cuánto puede recuperar tu método elegido. Un scraper de reseñas de Amazon puede devolver registros útiles sin cubrir todas las reseñas asociadas con un producto. Mide esa cobertura antes de sacar conclusiones sobre el sentimiento del cliente.
Elige los campos de reseña que tu investigación necesita
Recopila suficiente información para analizar los comentarios, identificar duplicados y rastrear cada registro hasta su fuente.
Campo | Por qué importa |
ID de reseña | Identifica una reseña para deduplicación y recopilación repetida. |
Calificación | Conecta los comentarios escritos con su puntuación de estrellas. |
Título y texto | Captura los comentarios del cliente para análisis de temas y sentimientos. |
Fecha de reseña | Ayuda a separar experiencias recientes de comentarios más antiguos. |
Indicador de compra verificada | Preserva la etiqueta de verificación de compra donde esté disponible; no es una garantía de precisión. |
Variante relevante | Registra el tamaño, color u otra opción asociada con la reseña cuando se muestra. |
URL de origen | Proporciona una referencia para verificar los comentarios originales. |
Mantén los campos no disponibles como valores faltantes. Por ejemplo, un indicador que tu scraper no logró extraer debe permanecer desconocido en lugar de registrarse como «no verificado». Almacena la marca de tiempo de recopilación por separado de la fecha de publicación de la reseña.
Cómo hacer scraping de Amazon por código postal
Aprender cómo hacer scraping de Amazon por código postal comienza con establecer el destino de entrega y confirmar que permanece aplicado cuando recopilas los datos del producto. Una conexión de proxy de EE. UU. por sí sola no establece el código postal que Amazon usa para las estimaciones de entrega.
El ejemplo de Python anterior aún no implementa controles de ubicación de entrega. Sus campos de ubicación permanecen sin verificar hasta que agregues un flujo de trabajo de navegador o uses un servicio de scraping con soporte documentado para la configuración de entrega de Amazon.
Establece y verifica la ubicación de entrega
Para un flujo de trabajo basado en navegador, usa la siguiente secuencia:
Abre el marketplace objetivo
Abre el selector de ubicación de entrega de Amazon
Espera a que la página se actualice
Abre el producto objetivo y selecciona su variante
Captura la ubicación observada junto con los campos del producto
Mantén la configuración de entrega y el contexto de sesión consistentes
Varias configuraciones contribuyen al contexto de recolección, pero sirven para propósitos diferentes.
Configuración | Su función | Qué verificar |
Dominio del marketplace | Selecciona la tienda de Amazon que se está consultando | La solicitud y la página final usan el dominio previsto. |
Dirección de entrega o código postal | Especifica el destino usado para la información de entrega | La página del producto refleja el destino solicitado. |
Cookies y sesión del navegador | Preservan las selecciones de ubicación y otro estado de navegación | La ubicación permanece aplicada después de la navegación y actualización. |
Ubicación del proxy | Controla la ubicación de salida de la red | La conexión usa la región prevista sin asumir que establece el código postal de entrega. |
Para un flujo de trabajo de navegador personalizado, una sesión de proxy sticky puede ayudar a preservar la continuidad de red. No reemplaza el paso de selección de ubicación ni prueba que Amazon retuvo tu destino elegido.
Compara el mismo producto bajo condiciones controladas
Comienza con un ASIN hijo y dos códigos postales, recolectando ambas observaciones dentro de una ventana corta. Mantén la variante seleccionada, condición del producto, cantidad y estado de cuenta consistentes. Mantén al vendedor constante cuando sea posible; si el vendedor mostrado cambia, registra ese cambio antes de interpretar una diferencia de precio.
Guarda estos detalles con cada observación:
Código postal solicitado, ubicación de entrega observada y estado de verificación.
Marketplace, ASIN hijo, variante seleccionada, vendedor y condición.
Precio del artículo mostrado, moneda, cargo de envío, disponibilidad y estimación de entrega.
URL de origen y marca de tiempo de recolección.
Para una comparación pequeña, usa la siguiente plantilla de registro. Es una hoja de trabajo de prueba, no resultados observados de Amazon.
Observación | Ejecución con código postal A | Ejecución con código postal B |
Código postal solicitado | 10001 | 90001 |
Ubicación de entrega observada | Registrar desde la respuesta | Registrar desde la respuesta |
Marca de tiempo de recopilación | Registrar tiempo real | Registrar tiempo real |
ASIN hijo y variante | Registrar y comparar | Registrar y comparar |
Vendedor y condición | Registrar y comparar | Registrar y comparar |
Precio del artículo y envío | Registrar por separado | Registrar por separado |
Disponibilidad y estimación de entrega | Registrar valores mostrados | Registrar valores mostrados |
Una comparación de códigos postales describe esas observaciones en esos momentos. No debe presentarse como prueba de una diferencia de precio regional permanente.
Cómo elegir la mejor API de scraping de comercio electrónico para datos de productos de Amazon
La mejor API de scraping de comercio electrónico para datos de productos de Amazon es aquella que devuelve los campos que necesita tu flujo de trabajo, bajo las condiciones de recopilación adecuadas, a un costo sostenible. Evalúa a los proveedores con las mismas entradas y criterios de aceptación para que una respuesta rápida pero incompleta no supere en papel a un registro más lento pero utilizable.
Verifica la cobertura de campos, los controles de ubicación y el soporte de reseñas
Convierte los requisitos de tu conjunto de datos en una lista de verificación antes de realizar pruebas. Separa los campos esenciales de los opcionales: un trabajo de monitoreo de precios puede requerir el ASIN hijo, vendedor, precio, moneda y contexto de entrega, mientras que el descubrimiento de productos puede priorizar títulos, marcas, categorías e identificadores.
Verifica la documentación de cada capacidad requerida y luego compruébala en la salida. El soporte para «datos de Amazon» no establece que cada endpoint maneje variantes, ofertas de vendedores, códigos postales de entrega y reseñas con la misma eficacia.
Mide resultados utilizables, tiempo de respuesta y costo total
Define un resultado utilizable antes de calcular el éxito. Para una comparación de precios, podría significar un registro con el ASIN hijo correcto, campos de oferta requeridos, contexto de entrega verificado y una marca de tiempo de recopilación aceptable. Para el monitoreo de disponibilidad, un producto no disponible correctamente identificado puede ser útil incluso sin un precio.
Usa la misma definición en todos los proveedores:
Tasa de resultados utilizables = observaciones solicitadas que cumplen tus criterios de aceptación ÷ observaciones solicitadas totales × 100
Una observación es una verificación planificada de producto y ubicación en un momento de recopilación particular. Los reintentos y las respuestas duplicadas no deben aumentar el número de observaciones exitosas.
Rastrea los fallos por causa: campos requeridos faltantes, producto o ubicación incorrectos, salida duplicada, fallo de recuperación y fallo de análisis. Esto facilita ver si la debilidad de un proveedor afecta tu carga de trabajo real.
Mide el tiempo transcurrido hasta que los datos utilizables estén disponibles, incluyendo reintentos y sondeo asíncrono. Para pruebas más grandes, compara los tiempos de respuesta típicos con solicitudes más lentas en lugar de confiar solo en un promedio.
Calcula el costo usando el mismo principio:
Costo por observación utilizable = cargos totales de prueba ÷ observaciones utilizables
Incluye reintentos facturables, cargos de renderizado, funciones de ubicación y otros extras requeridos. Para trabajos recurrentes, también considera los mínimos de suscripción y el trabajo necesario para limpiar o reparar la salida.
Prueba una muestra representativa antes de escalar
Comienza con aproximadamente 20 URLs de productos en tres o cuatro categorías, cubriendo diferentes variantes y algunos productos observados como no disponibles. Ejecuta cada uno contra dos códigos postales de entrega para una primera prueba manejable de alrededor de 40 observaciones.
Mantén las entradas y configuraciones consistentes entre proveedores, recopila dentro de una ventana corta y registra cualquier cambio en la página de origen que pueda afectar la comparación. Inspecciona cada registro en esta muestra inicial antes de introducir un cronograma recurrente.
Usa esta tabla para documentar los resultados:
Requisito | Prueba | Resultado | Limitación |
Campos de producto requeridos | Verifica cada registro contra la lista de campos acordada | Registra observaciones completas del total | Anota los campos que están ausentes o poblados de manera inconsistente. |
Variante correcta | Compara el ASIN hijo devuelto y los atributos con la variante solicitada | Registra coincidencias y discrepancias | Marca redirecciones o selecciones de variantes no resueltas. |
Control de ubicación de entrega | Solicita dos códigos postales e inspecciona el contexto de entrega observado | Registra coincidencias de ubicación verificadas | Indica cuándo solo se devuelve el código postal solicitado. |
Productos no disponibles | Verifica si los artículos no disponibles se identifican sin inventar precios | Registra estados precisos | Distingue la no disponibilidad de origen del fallo de extracción. |
Soporte de reseñas | Prueba un trabajo de reseñas pequeño separado con filtros y paginación definidos | Registra reseñas únicas utilizables | Documenta límites de acceso y cobertura desconocida. |
Frescura | Inspecciona las marcas de tiempo de recopilación y el comportamiento de caché documentado | Registra la frescura según tu requisito | Marca las marcas de tiempo que indican solo el tiempo de respuesta. |
Tiempo de respuesta | Mide desde el envío hasta la salida utilizable, incluyendo reintentos | Registra los tiempos típicos y más lentos | Una muestra pequeña no establece el rendimiento a escala. |
Costo total | Concilia el uso facturado con las observaciones utilizables | Registra el costo por observación utilizable | Incluye extras requeridos y mínimos de suscripción. |
Elige según los requisitos que más importan para tu flujo de trabajo de scraping de datos de productos de Amazon. Un proveedor que funciona bien en esta pequeña prueba merece una prueba más grande; aún no ha demostrado el mismo rendimiento en todo tu catálogo.
Usar código de GitHub para tu scraper de Amazon
Buscar «how to scrape amazon product data github» puede llevarte a scrapers ejecutables, integraciones de API y tutoriales con requisitos muy diferentes. Antes de instalar un repositorio, establece qué hace localmente, de qué servicios depende y si su salida coincide con tu proyecto.
Verifica qué proporciona realmente el repositorio
Lee el README junto con el código que envía las solicitudes. El nombre del repositorio por sí solo no te dice cómo funciona la recopilación.
Tipo de repositorio | Qué proporciona | Qué verificar |
Scraper independiente | Código que recupera páginas y extrae campos | Si debes proporcionar proxies, dependencias de navegador o infraestructura adicional |
Cliente de API | Código que se comunica con un servicio separado | Credenciales requeridas, endpoints soportados y cargos del servicio |
Tutorial | Un ejemplo que demuestra una técnica particular | Qué pasos de configuración, validación y manejo de errores quedan sin terminar |
Ejemplo de servicio comercial | Código de muestra que muestra cómo usar el producto de un proveedor | Requisitos de cuenta, límites de prueba y dependencias de pago |
Por qué tu scraper de Amazon devuelve resultados bloqueados, vacíos o incorrectos
Cuando un scraper de Amazon produce una salida inesperada, inspecciona la respuesta antes de cambiar la configuración de conexión. Una solicitud bloqueada, una oferta faltante y un selector roto requieren correcciones diferentes. Rotar la IP no reparará un analizador ni restaurará una ubicación de entrega que nunca se aplicó.
Síntoma | Qué investigar | Qué hacer a continuación |
Página de acceso denegado o desafío | Estado HTTP, contenido de la página devuelta, frecuencia de solicitudes y restricciones de acceso | Pausa los fallos repetidos y revisa el método de recopilación. Usa reintentos limitados para errores temporales en lugar de solicitar repetidamente una página de desafío. |
Respuesta exitosa pero sin campos de producto | Si la respuesta contiene una página de producto, marcado inesperado o contenido faltante del HTML inicial | Inspecciona el HTML devuelto. Actualiza los selectores solo después de confirmar que el contenido previsto está presente; evalúa el renderizado del navegador si los campos requeridos se cargan dinámicamente. |
Precio faltante | Disponibilidad del producto, variante seleccionada, oferta del vendedor y el selector de precio | Compare la página con el registro extraído. Preserve el valor faltante y registre la causa probable en lugar de sustituirlo por cero o recopilar un precio no relacionado. |
Información de entrega incorrecta | Si el código postal fue aplicado y retenido a través de la navegación o cambios de sesión | Verifique el destino observado en la página del producto. Vuelva a aplicar y verificar la ubicación, luego repita la observación afectada. |
Productos o reseñas duplicados | Paginación repetida, entradas superpuestas y manejo de identificadores | Deduplique las colas de recuperación de productos por marketplace y ASIN, y las reseñas por marketplace e ID de reseña cuando estén disponibles. Preserve las observaciones intencionadas de diferentes momentos o ubicaciones. |
Resultados diferentes entre ejecuciones | Momento de recopilación, variante seleccionada, vendedor, condición, ubicación de entrega y configuración de sesión | Compare el contexto guardado antes de etiquetar una diferencia como un cambio de precio o disponibilidad. Repita la verificación bajo condiciones consistentes si la causa no está clara. |
Mantenga un registro de errores breve con la URL de origen, marca de tiempo, estado de respuesta, categoría de fallo y configuraciones de recopilación relevantes. Excluya credenciales y valores de sesión sensibles. Esto le proporciona suficiente evidencia para distinguir problemas de recuperación de errores de extracción y cambios genuinos en la página.
Scraping de datos de productos de Amazon: mejores prácticas y directrices éticas
El web scraping ético comienza con un propósito definido: qué información necesita, cómo la obtendrá y qué planea hacer con ella después. Si está buscando «mejores prácticas y directrices éticas para el scraping de datos de productos de Amazon», utilice las siguientes verificaciones para convertir esas preguntas en decisiones concretas.
Revise los términos de Amazon y el uso previsto de los datos
El contenido públicamente visible no viene automáticamente con permiso irrestricto para recopilarlo, almacenarlo o republicarlo. Las Condiciones de Uso de Amazon abordan la minería de datos, robots y herramientas de extracción similares. Revise los términos aplicables a su marketplace y cualquier API o servicio de datos que utilice antes de comenzar la recopilación.
Considere la recopilación y la reutilización por separado. El análisis interno de precios, la publicación de extractos de reseñas y la redistribución de un conjunto de datos de productos implican diferentes usos del material. Confirme los permisos relevantes para su proyecto, incluidas las restricciones sobre retención, visualización o redistribución. Una suscripción de scraping o conexión proxy no otorga por sí misma derechos sobre el contenido de Amazon.
Preserve la procedencia y documente las limitaciones
Otra persona debería poder entender de dónde proviene un registro y qué representa sin reconstruir su scraper. Preserve la URL de origen, marketplace, ASIN, marca de tiempo de recopilación, variante seleccionada, vendedor y contexto de entrega solicitado y observado cuando sea relevante.
Agregue una nota breve de recopilación documentando:
La versión de la herramienta o código y la configuración de recopilación.
Filtros, ordenamiento, paginación y condiciones de detención.
Campos faltantes, solicitudes fallidas y reglas de deduplicación.
Si la configuración de ubicación fue verificada y los resultados fueron almacenados en caché.
Brechas de cobertura conocidas, particularmente para reseñas de clientes.
Mantenga los valores observados separados de suposiciones o campos calculados. Si la cobertura es desconocida, dígalo; si falta un precio, déjelo faltante. Esas distinciones hacen que el conjunto de datos sea más fácil de auditar y ayudan a prevenir comparaciones engañosas.
Para un flujo de trabajo personalizado, explore el catálogo de proxies de CyberYozh App y elija infraestructura según sus ubicaciones objetivo, duración de sesión requerida y tráfico esperado. Comience con un trabajo de recopilación pequeño y validado antes de expandir la carga de trabajo.
