Escribe un hotel, restaurante o atracción y Web Unlocker devuelve su página de Tripadvisor: valoración, posición, puntuaciones y reseñas con las respuestas del propietario, 10 por página, cobrada como una página. Una página que no carga no cuesta nada.
1000 solicitudes gratis · Solo pagas si funciona · 195+ países · Listo para Claude
Una página de Tripadvisor tarda de 5 a 30 segundos. Sigue en proceso, no hace falta volver a hacer clic.
¿Listo para tus propios lugares? Obtén una clave de API o reserva una demo.
Cuéntanos un poco sobre tu equipo y recibe:
Una página de hotel de Tripadvisor trae 10 reseñas y una de restaurante 15, con las valoraciones y las respuestas del propietario, y Web Unlocker la cobra como una página. Un scraper de reseñas de Tripadvisor en Apify o Bright Data cobra cada reseña.
Una página difícil cuesta
lo mismo que una fácil.
Una página que no carga no cuesta nada. Las 9260 reseñas en inglés de The Godfrey Hotel en Boston son 926 páginas: $0.91.
Lo que cuestan 10 000 reseñas de Tripadvisor
1000 páginas de hotel de 10 reseñas, a precios publicados
Web Unlocker en el plan Growth, $0.98 por 1000 páginas. Los demás cobran cada reseña: Bright Data con pago por uso, el actor más usado de Apify en el plan de $19 de Apify, Outscraper después de sus 500 reseñas gratis.
¿Listo para ejecutarlo con tus propios hoteles? Obtén tu clave de API y solicitudes gratis.
Nuestra prueba de scraping de Tripadvisor: cien páginas, una solicitud cada una, sin reintentos: hoteles de Boston a Tokio, páginas de reseñas muy atrás en la historia de un hotel, restaurantes, atracciones y listas de ciudades. Esto es lo que vuelve, y con qué rapidez.
Una página que no vuelve cuesta $0.
Pagas por páginas, no por intentos.
Tripadvisor muestra todas las reseñas a cualquier visitante, 10 por página de hotel y 15 por página de restaurante, y cada página enlaza con la siguiente. Tu scraper de Tripadvisor sigue ese enlace hasta la última página: The Godfrey Hotel en Boston son 926 páginas, hasta su primera reseña de enero de 2016.
La API propia de Tripadvisor sirve un conjunto de reseñas fijado por contrato.
La página muestra todas las reseñas.
El web scraping de Tripadvisor pide una solicitud por página: envía la dirección de Tripadvisor de un hotel, restaurante o atracción, recibe la página y lee la valoración, la posición y las reseñas. Cada página enlaza con la siguiente, así que todas las reseñas están a un bucle de distancia.
Rellena el formulario de arriba. La clave llega por correo en un día laborable.
Su página de Tripadvisor, tal como se abre en tu navegador, y el país desde el que abrirla.
La página incluye la valoración, la posición y de 10 a 15 reseñas, cada una con su valoración, texto, fecha y la respuesta del propietario.
pip install requestsGOLOGIN_SCRAPING_API_KEY=your_key python tripadvisor_reviews.pyhttps://parsing.webunlocker.gologin.com/v1/scrapeimport json
import os
import re
import time
from html import unescape
import requests
address = "https://www.tripadvisor.com/Hotel_Review-g60745-d8316858-Reviews-The_Godfrey_Hotel_Boston-Boston_Massachusetts.html"
def scrape(url):
for attempt in range(3):
response = requests.get(
"https://parsing.webunlocker.gologin.com/v1/scrape",
headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
params={
"url": url if attempt == 0 else f"{url}?_r={int(time.time())}",
"geo": "us",
"format": "json",
},
timeout=120,
)
html = response.json().get("data", {}).get("html", "")
if "ShowUserReviews-" in html:
return html
return html
def text(markup):
return unescape(re.sub(r"\s+", " ", re.sub(r"<[^>]+>", " ", markup.replace("<!-- -->", "")))).strip()
def first(pattern, source):
match = re.search(pattern, source)
return text(match.group(1)) if match else None
html = scrape(address)
place = {}
for block in re.findall(r'<script[^>]*application/ld\+json[^>]*>(.*?)</script>', html, re.S):
data = json.loads(block)
if "aggregateRating" in data:
place = data
break
cards = re.split(r'data-test-target="HR_CC_CARD"|data-automation="reviewCard"', html)[1:]
reviews = []
for card in cards:
title = first(r'<a[^>]+ShowUserReviews[^>]+>(.*?)</a>', card)
if not title:
continue
body = card.split("</h3>", 1)[1]
body = body[body.find('data-test-target="review-body"'):] if 'data-test-target="review-body"' in body else body
reviews.append({
"author": first(r'href="/Profile/[^"]+"[^>]*>(?:<span[^>]*>)?([^<]+)<', card),
"rating": first(r"<title[^>]*>([\d.]+) of 5 bubbles</title>", card),
"title": title,
"text": text(re.split(r"<button|Date of stay:|<div[^>]*>Written ", body)[0]),
"date_of_stay": first(r"Date of stay:(?:<[^>]+>)+([^<]+)<", card),
"owner_reply": "Response from " in card,
})
next_page = re.search(r'aria-label="Next page" href="([^"]+)"', html)
print(json.dumps({
"name": place.get("name"),
"rating": place.get("aggregateRating", {}).get("ratingValue"),
"reviews_total": place.get("aggregateRating", {}).get("reviewCount"),
"ranking": first(r"(#[\d,]+ of [\d,]+ [^<\"]+?)(?= and rated|\"|<)", html),
"reviews": reviews,
"next_page": f"https://www.tripadvisor.com{unescape(next_page.group(1))}" if next_page else None,
}, indent=2, ensure_ascii=False))GOLOGIN_SCRAPING_API_KEY=your_key node every-review.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeimport { writeFileSync } from 'node:fs';
let address = 'https://www.tripadvisor.com/Restaurant_Review-g60763-d33984348-Reviews-Olio_e_Piu-New_York_City_New_York.html';
const scrape = async (url) => {
for (let attempt = 0; attempt < 3; attempt += 1) {
const params = new URLSearchParams({ url: attempt ? `${url}?_r=${Date.now()}` : url, geo: 'us', format: 'json' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const html = (await response.json()).data?.html ?? '';
if (html.includes('ShowUserReviews-')) return html;
}
return '';
};
const text = (markup) =>
markup
.replace(/<[^>]+>/g, ' ')
.replace(/&/g, '&')
.replace(/'|'/g, "'")
.replace(/"/g, '"')
.replace(/\s+/g, ' ')
.trim();
const reviews = new Map();
let pages = 0;
while (address) {
const html = await scrape(address);
pages += 1;
for (const card of html.split(/data-test-target="HR_CC_CARD"|data-automation="reviewCard"/).slice(1)) {
const id = card.match(/ShowUserReviews-g\d+-d\d+-r(\d+)/)?.[1];
if (!id) continue;
const at = card.indexOf('data-test-target="review-body"');
const body = at >= 0 ? card.slice(at) : card.slice(card.indexOf('</h3>'));
reviews.set(id, {
id,
rating: card.match(/<title[^>]*>([\d.]+) of 5 bubbles<\/title>/)?.[1],
title: text(card.match(/<a[^>]+ShowUserReviews[^>]+>([\s\S]*?)<\/a>/)?.[1] ?? ''),
written: card.match(/Written (?:<!-- -->)?([^<]+)</)?.[1] ?? '',
text: text(body.slice(body.indexOf('>') + 1).split(/<button|Date of stay:|<div[^>]*>Written /)[0]),
});
}
const next = html.match(/aria-label="Next page" href="([^"]+)"/)?.[1];
address = next ? `https://www.tripadvisor.com${next.replace(/&/g, '&')}` : null;
}
const csv = (value) => `"${String(value).replace(/"/g, '""')}"`;
const rows = [...reviews.values()].map((r) => [r.id, r.rating, r.written, r.title, r.text].map(csv).join(','));
writeFileSync('reviews.csv', ['id,rating,written,title,text', ...rows].join('\n'));
console.log(`${reviews.size} reviews from ${pages} pages saved to reviews.csv`);GOLOGIN_SCRAPING_API_KEY=your_key node city-hotels.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst address = 'https://www.tripadvisor.com/Hotels-g60745-Boston_Massachusetts-Hotels.html';
const params = new URLSearchParams({ url: address, geo: 'us', format: 'json' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const html = (await response.json()).data?.html ?? '';
const hotels = [];
for (const [, json] of html.matchAll(/<script[^>]*application\/ld\+json[^>]*>([\s\S]*?)<\/script>/g)) {
const data = JSON.parse(json);
if (data['@type'] !== 'ItemList') continue;
for (const { item } of data.itemListElement) {
hotels.push({
name: item.name,
rating: item.aggregateRating?.ratingValue,
reviews: item.aggregateRating?.reviewCount,
phone: item.telephone,
address: item.address?.streetAddress,
page: item.url.replace(/\?.*$/, '').replace('/HotelHighlight-', '/Hotel_Review-'),
});
}
}
console.table(hotels.map(({ name, rating, reviews, phone }) => ({ name, rating, reviews, phone })));
console.log(`${hotels.length} hotels, each with its page for the reviews`);¿Necesitas la versión de Google de los mismos lugares? El scraper de reseñas de Google devuelve la valoración de Google de un lugar, el desglose por estrellas y las mejores reseñas de la misma forma.
La API oficial que sustituyó a la Content API el 31 de agosto de 2026, el scraper de reseñas más usado de Apify, Outscraper y Web Unlocker: lo que cobra cada uno por hacer scraping de datos de Tripadvisor y lo que te deja conservar.
| Lo que exige | Tripadvisor API | Apify | Outscraper | |
|---|---|---|---|---|
| Pagas por | Una página | Cada lugar, cada llamada | Cada reseña | Cada reseña |
| 1000 lugares con sus primeras reseñas | $0.98 | $15 | $19 | $38 |
| Todas las reseñas de un lugar | Sí, página a página | Un conjunto fijado por contrato | Sí | Sí |
| Guardar lo que recopilas | Sí | Solo los ID de ubicación | Sí | Sí |
| Inicio gratis | 1000 páginas | 1000 llamadas, una vez | $5 al mes | 500 reseñas |
| El mismo precio en cualquier otro sitio | Sí | No | No | No |
| La página completa en HTML o Markdown | Sí | No | No | No |
¿Primero necesitas los lugares? Una lista de ciudad de Tripadvisor trae 30 hoteles o restaurantes por página, y la pestaña Hoteles de la ciudad de arriba la lee. Web Unlocker devuelve cualquier otro sitio de la misma forma.
Una cuenta, una red de proxies, un ecosistema. Elige el producto que necesita cada tarea.
¿También haces scraping de reseñas en otros sitios? Consulta los scrapers de reseñas de Google y Google Maps, o todas las herramientas de web scraping.
Envía la dirección de Tripadvisor del lugar a Web Unlocker. Abre la página en un navegador real y la devuelve con la valoración, la posición en su ciudad, el desglose de valoraciones y las reseñas: 10 en una página de hotel, 15 en una de restaurante, cada una con el autor, la valoración, el título, el texto, la fecha y la respuesta del propietario. Cada página enlaza con la siguiente, y el código de arriba sigue ese enlace hasta la última página.
Envía la dirección de la página a Web Unlocker con la biblioteca requests y lee los campos de la página. La pestaña Python de arriba es un script completo, probado en la API real.
Tripadvisor cerró su Content API el 31 de agosto de 2026, y sus claves dejaron de funcionar. Su sustituta, Tripadvisor Terra, vende un paquete de autoservicio con un número limitado de reseñas, sacadas de un conjunto que fija tu contrato, y sus términos no te dejan guardar nada salvo los ID de ubicación. Web Unlocker devuelve la propia página pública, con todas las reseñas, página tras página.
Tripadvisor Terra da gratis las primeras 1000 llamadas facturables una vez por cuenta, y luego cobra $0.015 por lugar en cada llamada, menos a mayor volumen. Web Unlocker cobra $0.98 por 1000 páginas, y una página de hotel trae 10 reseñas.
Solo para empezar: Tripadvisor Terra da a cada cuenta sus primeras 1000 llamadas facturables una vez, y cada llamada posterior es de pago. La antigua Content API, con sus llamadas gratis cada mes, cerró el 31 de agosto de 2026. Web Unlocker incluye 1000 solicitudes gratis, que son 10 000 reseñas de hotel.
Las claves de la antigua Content API dejaron de funcionar el 31 de agosto de 2026; las nuevas vienen con un paquete de Tripadvisor Terra. Una clave de Web Unlocker llega desde el formulario de arriba en un día laborable, con solicitudes gratis para probar en tus propios lugares.
Sí, y un scraper de reseñas de Tripadvisor no necesita iniciar sesión para ello: Tripadvisor muestra todas las reseñas a cualquier visitante, página a página. The Godfrey Hotel en Boston muestra sus 9260 reseñas en inglés en 926 páginas, y la última se remonta a enero de 2016. Todas juntas salen por $0.91.
10 en una página de hotel o de atracción y 15 en una de restaurante, además de la valoración del lugar, su número de reseñas, su posición en la ciudad, el desglose de valoraciones y las puntuaciones de cada aspecto de la estancia.
Sí, siempre que el lugar haya respondido: quién respondió, la fecha y el texto completo. En la segunda página de reseñas de The Godfrey Hotel, las 10 tenían respuesta.
Sí. Una página de lista de ciudad trae 30 lugares con su valoración, número de reseñas, nivel de precios, teléfono, dirección y posición en el mapa, y cada lugar es una página más para sus reseñas. La pestaña Hoteles de la ciudad de arriba lista 30 hoteles de Boston desde una página.
Tripadvisor.com lista las reseñas escritas en inglés. Cada sitio de país lista las reseñas en su propio idioma: en tripadvisor.fr, The Godfrey Hotel muestra 2061. Web Unlocker devuelve esas páginas de la misma forma, desde más de 195 países.
La pestaña Todas las reseñas de arriba escribe reviews.csv: una fila por reseña con su valoración, fecha, título y texto. O pasa la página a Claude con la skill de scraping de Gologin y pide un CSV.
Menos de $1 por 1000 páginas, y el mismo precio para cada página: 10 000 reseñas de hotel salen por $0.98. Una página que no carga no cuesta nada. Los planes empiezan en $49 al mes por 50 000 solicitudes.
Sí, para empezar: Web Unlocker incluye 1000 solicitudes gratis, suficientes para 10 000 reseñas de hotel.
No. Web Unlocker elige la IP por ti, en más de 195 países, y abre la página desde el país que elijas.
Depende de lo que necesites. Apify, Bright Data y Outscraper venden filas ya hechas y cobran cada reseña. Web Unlocker es un scraper de Tripadvisor que devuelve la página completa a un precio por página, con la posición, el desglose de valoraciones y las respuestas del propietario, y la analizas a tu manera.
Los scrapers que llaman a los flujos de datos internos del sitio necesitan un arreglo cada vez que Tripadvisor cambia uno: el actor de Tripadvisor más usado de Apify registró tres arreglos así en octubre de 2026. Web Unlocker devuelve la página que ve un visitante.
Una página de Tripadvisor es pública y carga sin iniciar sesión. Web Unlocker la carga como lo hace el navegador de un visitante y devuelve la página. Qué recoges y cómo lo usas es decisión tuya, así que compruébalo con las normas que se apliquen a tu proyecto.
Cuéntanos un poco sobre tu equipo y recibe: