Tony Wang6 min de lecturaCómo scrapear Trip.com en 2026 (API y Python)
Scrapea datos de búsqueda y detalle de hoteles de Trip.com en 2026 — DIY, no-code o una API estructurada, solo hoteles, más lo legal.
La forma más rápida de scrapear Trip.com en 2026 es llamar a una API estructurada que devuelve JSON normalizado para búsqueda de hoteles y detalle de hotel, en lugar de replicar tú mismo los endpoints internos de Trip.com. Trip.com (Trip.com Group, antes Ctrip) es una de las OTA más grandes de Asia, pero esta guía es clara desde el inicio sobre su alcance: la cobertura aquí es solo búsqueda de hoteles y detalle de hotel. A diferencia de nuestras guías de Booking.com, Agoda o Expedia, no hay superficie de vuelos, trenes, alquiler de coches o actividades en esta API — Trip.com vende eso como productos separados y mucho más grandes, y no existe una API de lectura self-serve para ellos. Esta guía cubre los tres enfoques para lo que realmente está disponible, más lo básico en lo legal.
¿Por qué scrapear datos de Trip.com?
Los datos de hoteles de Trip.com sostienen algunos casos de uso recurrentes:
- Monitoreo de precio y disponibilidad de hoteles — hacer seguimiento de cómo se mueve la tarifa por noche de una propiedad a lo largo del tiempo.
- Verificación de paridad de tarifas entre OTAs — comparar el precio de un hotel en Trip.com con Booking.com, Agoda o Expedia para las mismas fechas.
- Investigación de mercado, sobre todo de viajes APAC — Trip.com Group (Ctrip, Trip.com, Skyscanner) es una de las OTA dominantes en China continental y en gran parte de Asia, así que su oferta de hoteles y su precio son una señal útil para la demanda de viajes en la región.
- Pipelines de viajes con IA — alimentar JSON normalizado de búsqueda y detalle de hoteles a un agente o herramienta de itinerarios en lugar de scrapear HTML al vuelo.
¿Es legal scrapear Trip.com?
Opción 1: DIY en Python (y por qué se rompe)
Las páginas de búsqueda y detalle de hoteles de Trip.com se renderizan a partir de llamadas internas detrás de JavaScript del lado del cliente, así que un scraper DIY tiene que replicar esas peticiones:
import requests
# Trip.com's hotel-list UI calls internal endpoints that aren't documented for public use
resp = requests.get(
"https://www.trip.com/hotels/bangkok-hotels-list-359/",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
Funciona en la demo y luego se rompe:
- No hay API self-serve abierta. La Partner API real de Trip.com es una integración de proveedor/agregador para agencias de viajes y OTAs, y el feed de datos del Affiliate Program es para publishers aprobados — ninguna de las dos es un formulario de registro para extraer datos de hoteles con fines de investigación.
- El robots.txt bloquea exactamente las páginas que scrapearías. Tanto las páginas de detalle de hotel como las de resultados de búsqueda están bloqueadas para crawlers generales, y también lo están las rutas internas de la API que esas páginas invocan.
- Endpoints internos, sin garantía de estabilidad. Las formas de las peticiones detrás de las páginas de listado de hoteles por ciudad y de detalle de hotel no son un contrato público; Trip.com puede cambiar parámetros, headers o campos de respuesta sin aviso.
- Los identificadores de ciudad no son obvios. Las propias URLs de Trip.com codifican un id numérico de ciudad (
bangkok-hotels-list-359) junto a un slug — necesitas ambos, y no existe un endpoint público de búsqueda para resolver el nombre de una ciudad a ese id.
Opción 2: Herramientas no-code / listas para usar
Un puñado de actores de scraping de marketplace apuntan a los listados de hoteles de Trip.com para una extracción puntual ocasional, pero heredan la misma fragilidad frente a anti-bot y endpoints internos que el DIY, y ninguno cubre vuelos, trenes o actividades — los productos de Trip.com que no son hoteles no entran realmente en el alcance de los scrapers de propósito general.
Opción 3: Una API estructurada de Trip.com
Para un flujo de trabajo repetible de datos de hoteles, una API de scraping de Trip.com devuelve JSON normalizado sin flota de navegadores ni ingeniería inversa de endpoints — pero queda claro que es solo búsqueda y detalle de hoteles. Busca hoteles por ciudad:
curl "https://api.crawlora.net/api/v1/tripcom/hotels/search?city_slug=bangkok&city_id=359" \
-H "x-api-key: $CRAWLORA_API_KEY"
Trae el detalle completo de un hotel a partir de ese resultado de búsqueda en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1"
search = requests.get(f"{base}/tripcom/hotels/search", headers=h, params={
"city_slug": "bangkok", "city_id": 359,
}).json()["data"]
hotel_id = search["hotels"][0]["hotel_id"]
detail = requests.get(f"{base}/tripcom/hotels/{hotel_id}", headers=h).json()["data"]
Un resultado de búsqueda de hoteles es JSON normalizado (campos reales — revisa la documentación):
{
"code": 200,
"msg": "OK",
"data": {
"city_slug": "bangkok",
"city_id": "359",
"count": 9,
"hotels": [
{
"hotel_id": 39371462,
"name": "Divalux Resort and Spa Bangkok, Suvarnabhumi Airport-Free Shuttle",
"url": "https://www.trip.com/hotels/bang-sao-thong-district-hotel-detail-39371462/divalux-resort-and-spa-bangkok-suvarnabhumi-airport-free-shuttle/",
"star_rating": 5,
"rating_score": 8.7,
"review_count": 872,
"price": { "raw": "US$38", "currency": "US$", "amount": 38, "unit": "1 night" }
}
],
"source_url": "https://www.trip.com/hotels/bangkok-hotels-list-359/"
}
}
El detalle de hotel añade location (dirección, zona, lat/lng, descripción del acceso al transporte), un desglose de rating (limpieza, amenidades, ubicación, servicio), policy (check-in/out, política de menores), popular_facilities, images y highlights. Guarda una fila por hotel y fecha de extracción, y vuelve a ejecutar según un calendario para hacer seguimiento del movimiento de precios.
Qué puedes recolectar
Solo datos públicos de hoteles: resultados de búsqueda (id de hotel, nombre, url, valoración en estrellas, puntuación y número de reseñas, descripción corta, imagen de portada, precio por noche) y detalle de hotel (dirección completa y coordenadas geográficas, año de apertura, highlights, desglose de valoración por categoría, política de check-in/menores, instalaciones populares, galería de imágenes, descripción, URL de origen). No hay endpoint de vuelos, trenes, alquiler de coches, actividades ni reseñas en este grupo de catálogo.
Limitaciones
- Solo hoteles. Este es el grupo de catálogo más estrecho de esta serie how-to-scrape — sin vuelos, trenes, alquiler de coches ni actividades, a diferencia de las guías de Agoda o Expedia. Si necesitas datos de vuelos o trenes de Trip.com, eso es una integración considerablemente más grande que esta API no cubre.
- La búsqueda necesita un id de ciudad conocido, no texto libre.
city_slugycity_idson ambos obligatorios — primero resuelves eso a partir de una URL de ciudad de Trip.com; aquí no hay búsqueda de palabra clave a ciudad. - No hay API oficial self-serve abierta. La Partner API y el feed de datos del Affiliate Program de Trip.com están ambos limitados por relación, no encajan para extracciones de investigación puntuales.
- Las tarifas y la disponibilidad cambian constantemente. Una sola extracción solo refleja el momento en que buscaste — vuelve a extraer por cada rango de fechas que te interese.
- Solo datos públicos. Esto recolecta lo que está listado públicamente — nunca una forma de completar o manipular una reserva real.
Dónde se usa esto
- Monitoreo de precio de hoteles — hacer seguimiento de la tarifa de una propiedad específica a lo largo del tiempo.
- Investigación de paridad de tarifas entre OTAs — comparar el precio de Trip.com con Booking.com, Agoda o Expedia para el mismo hotel y las mismas fechas.
- Investigación de mercado de viajes APAC — evaluar la oferta de hoteles y los precios en ciudades donde Trip.com Group tiene una fuerte cuota regional.
Sources
Empieza a recolectar
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.
Prueba los endpoints de búsqueda y detalle de hotel en el Playground, revisa el esquema en la documentación de la API y consulta los precios. Trip.com cubre el lado de hoteles, con fuerte peso en APAC, de los datos de OTAs; cómo scrapear Booking.com cubre la mayor OTA global por tráfico, y cómo scrapear Agoda cubre a un competidor similar centrado en APAC con cobertura más amplia (hoteles, homes, actividades y vuelos). Consulta también cómo scrapear Expedia y is web scraping legal.
Preguntas frecuentes
¿Esta API de Trip.com cubre también vuelos o trenes, no solo hoteles?
No — este grupo de catálogo cubre solo búsqueda de hoteles y detalle de hotel. Trip.com vende vuelos, trenes, alquiler de coches y actividades como productos separados y mucho más grandes, y no hay una API de lectura self-serve para ellos aquí. Si los necesitas, prevé una integración aparte.
¿Existe una API oficial de Trip.com para leer resultados de búsqueda de hoteles?
No para uso self-serve abierto. La Partner API de Trip.com es una integración de proveedor/agregador para agencias de viajes y OTAs, y el Affiliate Program ofrece un feed de datos de hoteles a publishers aprobados — ambas son relaciones con acceso restringido mediante solicitud, no un formulario de registro para investigación o monitoreo.
¿Es legal scrapear datos de hoteles de Trip.com?
Los hechos públicos de un listado como el nombre, la dirección y la valoración en estrellas de un hotel no tienen derechos de autor, y hiQ Labs v. LinkedIn determinó que acceder a datos públicos no viola la CFAA. Pero los Terms and Conditions de Trip.com prohíben el acceso no autorizado y las cargas de datos excesivas en su red, y su robots.txt bloquea el rastreo de páginas de detalle de hotel y de resultados de búsqueda para bots generales. Esto no es asesoría legal — el panorama completo está en nuestra guía sobre la legalidad del web scraping.
¿Qué datos obtengo de una búsqueda de hoteles en Trip.com?
Id de hotel, nombre, URL, valoración en estrellas, puntuación y número de reseñas, una descripción corta, una imagen de portada y el precio por noche para la ciudad buscada.
¿Qué devuelve el endpoint de detalle de hotel de Trip.com?
Dirección completa y coordenadas geográficas, año de apertura, highlights, un desglose de valoración por categoría (limpieza, amenidades, ubicación, servicio), política de check-in/menores, instalaciones populares, una galería de imágenes, descripción y la URL de origen.
¿Cómo encuentro un city_id para buscar hoteles en Trip.com?
El endpoint de búsqueda requiere tanto city_slug como city_id, no una consulta de texto libre. Trip.com codifica ambos en las URLs de sus propios listados de hoteles (por ejemplo, bangkok-hotels-list-359 da el slug "bangkok" y el id 359) — en este grupo de catálogo no hay un endpoint de búsqueda de palabra clave a ciudad.
¿Por qué la guía de Trip.com cubre menos que las guías de Agoda o Expedia?
Este grupo de catálogo solo tiene dos endpoints — búsqueda de hoteles y detalle de hotel —, así que esta guía se limita a hoteles. Las guías de Agoda y Expedia también cubren homes, actividades o vuelos porque sus grupos de catálogo son más amplios.