Tony Wang6 min de lecturaCómo hacer scraping de Costco en 2026 (API y Python)
Guía Costco 2026: búsqueda, precios, disponibilidad, reviews y warehouses como JSON estructurado — DIY, sin código o API.
La forma más rápida de hacer scraping de Costco en 2026 es llamar a una API estructurada que devuelve JSON normalizado para product search, detail, availability, reviews, categories y warehouses cercanos — en lugar de parsear tú mismo las páginas de Costco.com. Costco.com se puede navegar libremente sin membresía, pero no tiene una API pública de autoservicio, está detrás del bot management de Akamai, y una señal de membresía recorre sus datos — algunos productos y precios son exclusivos de miembros, y los no miembros pagan un recargo sobre el resto. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde falla el DIY y los aspectos legales y de acceso básicos.
¿Por qué hacer scraping de Costco?
Los datos de productos y warehouses de Costco impulsan:
- Inteligencia de precios — seguir cómo cambia el precio de un artículo a granel a lo largo del tiempo, incluyendo flags de precio reducido.
- Investigación de surtido y categorías — ver qué se ofrece en una categoría y cómo cambian los conteos.
- Análisis de reviews y sentimiento — extraer tendencias de rating y el texto de reviews para una línea de productos.
- Monitoreo de disponibilidad — comprobar estimaciones de entrega de un producto en un código postal o estado determinado antes de que se agote.
- Mapeo de warehouses y cobertura de mercado — encontrar los warehouses físicos más cercanos a una ubicación para investigación de disponibilidad local o densidad de tiendas.
¿Es legal hacer scraping de Costco?
Opción 1: DIY en Python (y por qué falla)
Las páginas de producto de Costco se renderizan a partir de datos del lado del servidor en lugar de un endpoint JSON público estable, así que un scraper DIY tiene que obtener y parsear la página renderizada:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.costco.com/p/4000103922",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Price, rating, and availability are embedded in page data, not
# consistently exposed as selectable markup
Funciona en la demo y luego se rompe:
- El bot management de Akamai protege el sitio. Una petición rutinaria y sin autenticar recibe un desafío o un bloqueo rápidamente — las llamadas ingenuas con
requestsno llegan lejos, y un scraper basado en navegador necesita mantenimiento continuo a medida que la defensa se actualiza. - La disponibilidad y las estimaciones de entrega son específicas por ubicación. El mismo producto devuelve un
availabilityy unestimated_delivery_datedistintos según el código postal y el estado, así que una sola descarga de página nunca te da el panorama completo — necesitas una petición por ubicación. - El pricing lleva una señal de membresía que no puedes ignorar. Algunos productos son
membership_requiredy solo tienen precio para miembros con sesión iniciada; hacer scraping de una vista de no miembro sin tener en cuenta ese flag te da un precio incompleto o engañoso. - No hay API oficial de terceros. Costco no tiene un programa de autoservicio para desarrolladores — existe un puñado de servicios de scraping de terceros precisamente porque no hay una alternativa autorizada.
Opción 2: Herramientas sin código
Existen actores de scraping de marketplace para Costco y sirven para una extracción puntual de una categoría o una lista corta de productos, pero heredan la misma fragilidad frente a Akamai que el DIY y no te dan un esquema estable y versionado sobre el que construir un pipeline.
Opción 3: Una API estructurada de Costco
Para un flujo de trabajo repetible, la API de Costco de Crawlora devuelve JSON normalizado para search, product detail, availability, reviews, categories y warehouses — sin parsing de páginas ni mantenimiento de defensas antibot. Busca por palabra clave:
curl "https://api.crawlora.net/api/v1/costco/search?query=refrigerator" \
-H "x-api-key: $CRAWLORA_API_KEY"
Luego resuelve un product id y obtén el detalle, la disponibilidad y las reviews en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/costco"
hits = requests.get(f"{base}/search", headers=h, params={"query": "refrigerator"}).json()["data"]["products"]
product_id = hits[0]["id"]
detail = requests.get(f"{base}/product/{product_id}", headers=h).json()["data"]
availability = requests.get(
f"{base}/product/{product_id}/availability",
headers=h,
params={"postal_code": "98134", "state": "WA"},
).json()["data"]
reviews = requests.get(f"{base}/product/{product_id}/reviews", headers=h).json()["data"]
Una respuesta de detalle de producto es JSON normalizado (campos reales — consulta los docs):
{
"code": 200,
"msg": "OK",
"data": {
"id": "4000103922",
"title": "LG 26 cu. ft. Smart Mirror InstaView Counter-Depth MAX French Door Refrigerator with Four Types of Ice",
"manufacturer": "LG ELECTRONICS USA INC",
"price": 1399.99,
"list_price": 1399.99,
"buyable": true,
"membership_required": false,
"rating": 4.44,
"rating_count": 477
}
}
La disponibilidad es específica por código postal y estado, con una estimación de entrega:
{
"data": {
"product_id": "1942114",
"availability": "INSTOCK",
"available_for_sale": true,
"fulfilled_by": "LG",
"estimated_delivery_date": "2026-08-17T00:00:00"
}
}
Los warehouses cercanos provienen de una búsqueda por latitud/longitud — útil para combinar la disponibilidad online con la tienda física más cercana:
curl "https://api.crawlora.net/api/v1/costco/warehouses?latitude=47.6062&longitude=-122.3321" \
-H "x-api-key: $CRAWLORA_API_KEY"
Guarda una fila por producto en cada extracción, indexada por el id del producto, y vuelve a ejecutarlo según un calendario para rastrear cambios en price/list_price y cambios en buyable.
Qué puedes recopilar
Datos públicos de productos y ubicaciones: resultados de búsqueda (id, url, title, brand, model, categories, rating); detalle completo del producto (title, manufacturer, price, list_price, buyable, membership_required, rating, rating_count); disponibilidad específica por código postal/estado (estado de stock, fulfilled_by, proveedor y fechas de entrega estimadas); reviews de producto (title, text, rating, author, flag recommended, fecha de envío); facetas de categoría por palabra clave; y warehouses cercanos por coordenadas (name, address, distance). Solo datos públicos de páginas de producto — no información de cuenta, pedidos o pagos de miembros.
Limitaciones y desafíos comunes
- Bot management de Akamai en el front end. Espera desafíos ante peticiones automatizadas ingenuas o de alto volumen directamente a costco.com.
- La membresía moldea los datos, no solo el checkout.
membership_requiredy el recargo del 5% para no miembros en la mayoría de los artículos implican que el precio que obtienes mediante scraping puede diferir de lo que un miembro termina pagando — trata el precio listado como un punto de referencia, no como un precio de miembro garantizado. - La disponibilidad está ligada a la ubicación.
availability/estimated_delivery_datevarían por código postal y estado — haz la extracción por ubicación si necesitas cobertura en varios mercados. - No hay exportación masiva a nivel nacional. No existe un feed oficial del catálogo completo de Costco; construye cobertura iterando consultas de búsqueda y categoría.
- Solo datos públicos. Esto es lo que ya muestra públicamente una página de producto y sus subpáginas de detalle — no una forma de evitar un login de membresía ni de acceder a datos a nivel de cuenta.
Dónde se usa esto
- Inteligencia de precios — rastrear
price/list_pricey flags de precio reducido en categorías de artículos a granel y electrodomésticos a lo largo del tiempo. - Investigación de surtido — medir conteos y cobertura de categorías por palabra clave.
- Mapeo de disponibilidad local — combinar
availabilitypor código postal con la búsqueda de warehouses cercanos para modelar el stock regional.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: ejecuta cualquier URL pública en el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin necesidad de registrarte.
Prueba los endpoints de search, product y availability en el Playground, revisa el esquema en los docs de la API y consulta los precios. Para el mismo patrón de retail de gran superficie en otra cadena, consulta cómo hacer scraping de Target; para la misma estructura de búsqueda a detalle de producto en un marketplace general, consulta cómo hacer scraping de datos de producto de Amazon; para el competidor de mercancía general más cercano, consulta cómo hacer scraping de Walmart; y para el lado de entrega de comestibles del propio catálogo de Costco, consulta cómo hacer scraping de Instacart. Consulta también cómo elegir una API de web scraping e is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — todas las plataformas que cubrimos, en un solo índice.
Preguntas frecuentes
¿Tiene Costco una API pública para desarrolladores?
No. Costco no tiene una API pública de autoservicio para desarrolladores — no existe ningún canal oficial por el que un desarrollador externo pueda solicitar acceso programático a datos de producto o precios.
¿Necesito una membresía de Costco para hacer scraping de Costco.com?
No — Costco.com se puede navegar sin membresía, pero algunos productos son membership_required, y los no miembros pagan un recargo del 5% sobre el precio de miembro en la mayoría de los demás artículos.
¿Es legal hacer scraping de datos de producto de Costco?
Los datos públicos de producto no tienen derechos de autor, y acceder a páginas públicas por sí solo no viola la CFAA según hiQ Labs v. LinkedIn, pero los Términos y Condiciones de Uso de Costco restringen el uso del sitio, y Costco.com ejecuta el bot management de Akamai — haz scraping solo de datos públicos de páginas de producto, respeta los límites de tasa, y nunca evites un login de membresía.
¿Por qué el mismo producto muestra distinta disponibilidad?
La disponibilidad y las estimaciones de entrega de Costco son específicas por código postal y estado — el mismo product id devuelve valores distintos de availability y estimated_delivery_date según la ubicación consultada.
¿Qué datos de Costco puedo recopilar con una API?
Resultados de búsqueda de producto, detalle completo del producto (price, list_price, buyable, membership_required, rating), disponibilidad específica por ubicación, reviews de producto, facetas de categoría y warehouses cercanos por coordenadas.
¿Puedo hacer scraping de los precios exclusivos de miembros de Costco?
No — los precios exclusivos de miembros están detrás de un login de membresía. Haz scraping solo de lo que una página muestra públicamente; nunca intentes iniciar sesión mediante automatización ni evitar la autenticación.
¿Qué bloquea a un scraper DIY de Costco?
Costco.com ejecuta el bot management de Akamai, que desafía las peticiones automatizadas ingenuas o de alto volumen, y no existe un endpoint JSON público estable — un scraper DIY debe parsear datos de página renderizada que cambian con el tiempo.