Tony Wang4 min de lecturaCómo hacer scraping de eBay en 2026 (API y Python)
Tres formas de hacer scraping de listings, artículos y sellers de eBay en 2026 — Python DIY, herramientas no-code o una API estructurada.
La forma más rápida de hacer scraping de eBay en 2026 es llamar a una API de marketplace estructurada que devuelve JSON normalizado — resultados de búsqueda, detalles de artículos, precios y datos de sellers — en lugar de parsear tú mismo las páginas de listings de eBay. Puedes construir un scraper DIY en Python, pero los layouts cambiantes, las defensas anti-bot y la paginación hacen que mantenerlo funcionando salga caro.
eBay sí ofrece APIs oficiales de Browse y Marketing, pero requieren registro de app, OAuth y aprobación, y no siempre exponen la estructura de listing pública que quieres para investigación. Una API de scraping estructurada es la vía más rápida para inteligencia de precios y sellers en listings que no te pertenecen.
¿Es legal hacer scraping de eBay?
Los listings y las páginas de sellers son públicos, y recopilar datos públicos generalmente se trata de forma distinta al acceso a cuentas privadas — con las condiciones habituales:
- Recopila solo páginas de listings y sellers públicas — sin acceso a cuentas de comprador/vendedor.
- Respeta los límites de rate y los términos de eBay; tú eres responsable del uso lícito.
- Ten cuidado con cualquier cosa que pudiera identificar a personas (casos donde el seller es una persona).
- No reutilices medios de listings con derechos de autor más allá de lo que tu caso de uso y la ley permiten.
No es asesoría legal — el tratamiento más extenso está en ¿Es legal el web scraping en 2026?.
Opción 1: DIY en Python (y por qué se rompe)
El enfoque ingenuo obtiene una página de resultados de búsqueda y parsea las tarjetas de artículos:
import csv, requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.ebay.com/sch/i.html",
params={"_nkw": "mechanical keyboard"},
headers={"User-Agent": "Mozilla/5.0", "Accept-Language": "en-US,en;q=0.9"},
)
soup = BeautifulSoup(resp.text, "html.parser")
rows = []
for card in soup.select("li.s-item"):
title = card.select_one(".s-item__title")
price = card.select_one(".s-item__price")
rows.append({"title": title.get_text(strip=True) if title else None,
"price": price.get_text(strip=True) if price else None})
with open("ebay.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=["title", "price"]); w.writeheader(); w.writerows(rows)
# ...then keep these selectors alive, parse currency/shipping, and paginate
Funciona una vez, y ahí empieza el mantenimiento:
- Defensas anti-bot que bloquean IPs de datacenter, así que necesitas proxies rotativos.
- Variedad de layouts — subasta vs. precio fijo, listings promocionados vs. orgánicos son diferentes.
- Parsing de precios — monedas, rangos y envío hacen que "el precio" no sea trivial.
- Paginación y deduplicación — los resultados se dispersan entre páginas y se repiten.
Opción 2: herramientas no-code y listas para usar
Las extensiones pueden exportar una página de resultados, pero la investigación de reventa y precios implica volver a ejecutar búsquedas según un calendario y guardar el histórico. Eso es un trabajo de pipeline al que le sirve mejor una API que una exportación manual.
Opción 3: una API estructurada de eBay
La API de eBay de Crawlora encapsula el manejo de requests, los proxies, el parsing y la normalización detrás de endpoints documentados para búsqueda, detalles de artículos y sellers.
curl -X POST "https://api.crawlora.net/api/v1/ebay/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword": "mechanical keyboard", "page": 1, "limit": 24, "listing_type": "all"}'
import requests
resp = requests.post(
"https://api.crawlora.net/api/v1/ebay/search",
headers={"x-api-key": "YOUR_API_KEY"},
json={"keyword": "mechanical keyboard", "page": 1, "limit": 24, "listing_type": "all"},
)
for item in resp.json()["data"]["items"]:
print(item["title"], item["price"], item["item_id"])
La respuesta es JSON normalizado (los campos son ilustrativos — confirma el cuerpo del request y el schema en los docs):
{
"code": 200,
"msg": "OK",
"data": {
"items": [
{
"item_id": "1234567890",
"title": "Example mechanical keyboard",
"price": 79.99,
"currency": "USD",
"condition": "New",
"url": "https://www.ebay.com/itm/1234567890"
}
]
}
}
A partir de un resultado de búsqueda, obtén el detalle completo del artículo o el perfil, la tienda y el feedback de un seller:
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/ebay"
item = requests.get(f"{base}/item/196435705622", headers=h).json()["data"]
seller = requests.get(f"{base}/seller/poloblade", headers=h).json()["data"]
shop = requests.get(f"{base}/seller/poloblade/shop", headers=h, params={"page": 1}).json()["data"]
feedback = requests.get(f"{base}/seller/poloblade/feedback", headers=h, params={"per_page": 48}).json()["data"]
El endpoint de seller combina perfil, sección "acerca de" y feedback; usa los endpoints dedicados de tienda y feedback para paginar el inventario y las reseñas.
Qué puedes recopilar
- Resultados de búsqueda: título, precio, moneda, condición y URL del listing
- Detalles de artículo para un
item_idespecífico - Perfil del seller, inventario de la tienda y feedback
- Paginación y filtros de tipo de listing para subastas vs. precio fijo
Limitaciones y desafíos comunes
- Las APIs oficiales están restringidas y son parciales. Las APIs Browse, Finding y Marketing de eBay requieren registro de app y OAuth, y la API de catálogo solo expone metadatos (IDs de producto) — obtener el detalle completo de un listing público sigue significando scraping.
- Variedad de listings. Subasta vs. precio fijo, promocionado vs. orgánico, y listings de una sola variación vs. multivariación son diferentes; "el precio" puede ser un rango más envío y moneda.
- Anti-bot. Los requests sin headers realistas se bloquean y las IPs de datacenter se limitan — una API estructurada gestiona headers, proxies y reintentos detrás de una sola key.
- Los medios tienen derechos de autor. Los precios, títulos y condiciones son hechos que puedes recopilar; las fotos y descripciones de los listings tienen copyright — no las republiques más allá de lo que tu caso de uso y la ley permiten.
Fuentes
Dónde encaja esto
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Los datos de eBay impulsan la fijación de precios de reventa, la investigación de competencia y arbitraje, y el enriquecimiento de catálogos. Combínalos con la API de scraping de Amazon y el flujo de inteligencia de producto e-commerce para el seguimiento de precios entre marketplaces — el mismo enfoque que hacer scraping de datos de productos de Amazon, de tiendas Shopify o de Shop.app, aplicado a otros marketplaces. Consulta también cómo hacer scraping de Facebook Marketplace para el lado peer-to-peer local de la reventa, y cómo hacer scraping de Whatnot para el formato de reventa en subasta en vivo. Para una comparación completa frente a otras APIs de datos de eBay, consulta las mejores APIs de scraper de eBay en 2026. Para el kit completo, consulta cómo elegir una API de web scraping.
Empieza probando el endpoint en el Playground, leyendo el schema de request y response en la documentación de la API y revisando los costos en créditos en la página de precios.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Puedo hacer scraping de eBay sin que me bloqueen?
Crawlora se encarga de headers realistas, proxies, el ritmo de los requests y los reintentos detrás de la API, y devuelve errores documentados para páginas inutilizables, de modo que recibes JSON normalizado en lugar de mantener un scraper. (eBay bloquea los requests sin headers correctos y limita las IPs de datacenter.)
¿eBay tiene una API oficial?
Sí, pero está restringida y es parcial: las APIs Browse, Finding y Marketing de eBay requieren registro de app, OAuth y aprobación, y la API de catálogo solo expone metadatos (IDs de producto), por lo que el detalle completo de un listing público sigue significando scraping. Los endpoints de eBay de Crawlora devuelven datos públicos de búsqueda, artículos y sellers como JSON normalizado con una sola API key.
¿Qué datos obtengo de eBay?
Resultados de búsqueda con título, precio, moneda, condición y URL; el detalle completo del artículo por item_id; y el perfil, el inventario de la tienda y el feedback del seller. Los precios y las condiciones son hechos; las fotos y los textos de los listings tienen derechos de autor.
¿Puedo hacer scraping de sellers de eBay?
Sí. El endpoint de seller combina el perfil, la pestaña Acerca de y el feedback de un seller público, y los endpoints dedicados de tienda y feedback paginan su inventario y sus reseñas (per_page 24/48/72). Ten cuidado con los datos personales.
¿Puedo hacer seguimiento de precios a lo largo del tiempo?
Sí. Vuelve a ejecutar búsquedas o consultas de artículos según un calendario y guarda los resultados para construir un historial de precios y disponibilidad.
¿Con qué frecuencia puedo actualizar los datos?
Con la frecuencia que permitan los créditos de tu plan. Cada respuesta refleja eBay en el momento del request.