Tony Wang4 min de lecturaCómo extraer datos de negocios de Yelp en 2026 (API y Python)
Extrae búsqueda, perfiles, reseñas y menús de Yelp en 2026 — DIY, sin código o una API estructurada que llama al backend de la app de Yelp.
La forma más rápida de scrapear datos de negocios de Yelp en 2026 es llamar a una API estructurada que devuelva JSON normalizado — búsqueda, perfiles de negocio, reseñas, menús y fotos — en lugar de pelear contra las defensas anti-bot de Yelp o chocar con el techo del nivel gratuito de la API oficial de Yelp. Esta guía cubre las tres opciones, qué devuelve cada una, dónde falla cada una y los aspectos legales básicos.
¿Por qué scrapear Yelp?
Yelp agrega calificaciones, reseñas y detalles operativos de millones de negocios locales, lo que lo hace útil para:
- SEO local y generación de leads — encontrar negocios en una categoría y área, con datos de contacto y calificación.
- Monitoreo de reseñas y reputación — hacer seguimiento de la calificación y el volumen de reseñas de un negocio o de la competencia a lo largo del tiempo.
- Investigación de mercado — mapear densidad de categorías, rangos de precios y el sentimiento de las reseñas en un mercado.
- Inteligencia de restaurantes y menús — extraer artículos y precios de menú junto con la señal de reseñas.
¿Es legal scrapear Yelp?
Opción 1: Hazlo tú mismo en Python (y por qué falla)
El sitio web de Yelp renderiza las páginas de búsqueda y de negocios detrás de JavaScript y las protege con capas de detección anti-bot:
import requests
# El sitio público de Yelp dispara CAPTCHAs y detección de bots rápidamente en IPs de datacenter
resp = requests.get("https://www.yelp.com/search?find_desc=pizza&find_loc=Chicago,+IL")
Funciona de demostración y luego falla:
- Anti-bot agresivo en el sitio web. Las IPs de datacenter reciben CAPTCHAs y bloqueos en apenas un puñado de solicitudes, así que hacerlo tú mismo requiere proxies residenciales, encabezados realistas y renderizado en navegador para las páginas con mucho JS.
- El tope del nivel gratuito de Yelp Fusion. La API oficial para desarrolladores tiene un límite de 5,000 llamadas al día en el nivel gratuito y devuelve un dataset recortado — sin texto completo de reseñas (solo hasta tres extractos de reseñas por negocio), y sin endpoints de menú o fotos.
- Sin API oficial de menú o de highlights. Los artículos del menú, la galería completa de fotos y los «highlights» de reseñas generados por IA de Yelp no tienen ningún equivalente en Fusion.
- Estructura interna que cambia sin aviso. Ya sea que analices el sitio web o repliques las propias llamadas al backend de la app de Yelp, los nombres de campos y las formas de respuesta cambian sin un changelog.
Opción 2: Herramientas sin código
Los scrapers visuales y los "actores" tipo «Yelp scraper» de los marketplaces exportan CSV/JSON para extracciones puntuales, pero son incómodos de programar dentro de un pipeline y heredan la misma fragilidad frente al anti-bot que un scraper hecho a mano.
Opción 3: Una API estructurada de Yelp
Para flujos de trabajo repetibles, una API de scraping de Yelp llama directamente al backend de la propia app móvil de Yelp y devuelve JSON normalizado — sin credenciales, sin necesidad de inicio de sesión ni clave de API de Yelp. Busca por término y ubicación:
curl "https://api.crawlora.net/api/v1/yelp/search?term=pizza&location=Chicago,%20IL" \
-H "x-api-key: $CRAWLORA_API_KEY"
Luego resuelve un negocio por su alias y extrae el perfil, las reseñas y el menú en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/yelp"
results = requests.get(f"{base}/search", headers=h,
params={"term": "pizza", "location": "Chicago, IL"}).json()["data"]["results"]
alias = results[0]["alias"] # p. ej. "pequods-pizza-chicago-3"
business = requests.get(f"{base}/business/{alias}", headers=h).json()["data"]
reviews = requests.get(f"{base}/business/{alias}/reviews", headers=h,
params={"limit": 20}).json()["data"]["reviews"]
menu = requests.get(f"{base}/business/{alias}/menu", headers=h).json()["data"]["items"]
Una respuesta de búsqueda es JSON normalizado que puedes guardar directamente (campos reales):
{
"code": 200,
"msg": "OK",
"data": {
"term": "pizza",
"location": "Chicago, IL",
"total": 240,
"results": [
{ "id": "pequods-pizza-chicago-3", "alias": "pequods-pizza-chicago-3", "name": "Pequod's Pizza", "rating": 4, "review_count": 8947, "price": "$$", "categories": ["Pizza"], "address": "2207 N Clybourn Ave, Chicago, IL 60614" }
]
}
}
Más allá de la búsqueda y las reseñas, la misma clave llega a /yelp/business/{id}/photos (galería), /yelp/business/{id}/reviews/highlights (los temas recurrentes extraídos por IA de Yelp, cada uno con una cita de respaldo) y /yelp/geocode para resolver cualquier dirección en texto libre a coordenadas y campos de localidad. Guarda una fila por negocio y vuelve a extraer según un calendario.
Qué puedes recolectar
Campos públicos: resultados de búsqueda de negocios (id/alias, nombre, calificación, número de reseñas, precio, categorías, dirección, coordenadas, fotos); perfil del negocio (horarios, teléfono, sitio web, puntaje de salud, atributos); reseñas (calificación, texto, idioma, autor, URL para compartir); highlights de reseñas (temas recurrentes con citas de respaldo); artículos del menú (nombre, descripción, precio); galerías de fotos; y geocodificación de direcciones.
Limitaciones y desafíos comunes
- No hay API oficial para el texto completo de reseñas a gran escala. El nivel gratuito de Yelp Fusion tiene un límite de 5,000 llamadas al día y recorta el texto de las reseñas a extractos cortos — una API estructurada devuelve el texto completo de las reseñas y límites más altos detrás de una sola clave.
- Los menús, las galerías de fotos completas y los highlights de reseñas no tienen equivalente en la API oficial para desarrolladores — solo son accesibles de la misma manera en que la propia app los accede.
- Las reseñas son datos personales. Los nombres de autores, el texto de las reseñas y las cadenas de ubicación son datos personales bajo GDPR/CCPA — recolecta campos públicos y factuales con una base legal y no vuelvas a publicar la identidad de quienes reseñan.
- La calificación y el número de reseñas cambian. Vuelve a extraer los datos según un calendario en lugar de confiar en una instantánea de un solo momento para el monitoreo de reputación.
Dónde se usa esto
- Negocios locales y generación de leads — encontrar y calificar negocios por categoría y área. Consulta el caso de uso de generación de leads.
- Monitoreo de reseñas y reputación — hacer seguimiento de la calificación y el sentimiento de un negocio o de la competencia. Consulta el caso de uso de monitoreo de reseñas y reputación.
- Investigación de restaurantes y menús — combinar calificaciones con precios de menú en un mercado.
Fuentes
Empieza a recolectar
Pruébalo primero, gratis: ejecuta cualquier URL pública en el Free Web Scraper, o verifica si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba el endpoint de búsqueda en el Playground, revisa el esquema en la documentación de la API y consulta los precios. Consulta también cómo scrapear OpenTable para reservas de restaurantes, cómo scrapear TripAdvisor para reseñas de viajes y lugares, cómo scrapear reseñas de Trustpilot para el lado general de reseñas de negocios, las APIs de apps móviles explicadas para entender cómo fluyen realmente estos datos, y ¿es legal el web scraping?.
Parte de nuestra serie de guías de cómo scrapear — todas las plataformas que cubrimos, en un solo índice.
Preguntas frecuentes
Does Yelp have an official API?
Yes — Yelp Fusion — but its free tier caps at 5,000 calls/day, trims review text to short excerpts (up to three per business), and has no menu, photo-gallery, or review-highlights endpoints. A structured API returns full review text and those extra fields behind one key.
Can I scrape Yelp without getting blocked?
Yelp's website runs layered anti-bot detection that blocks datacenter IPs within a handful of requests, so DIY needs residential proxies and browser rendering. A structured API calls Yelp's own app backend directly and handles this behind the key.
How do I address a Yelp business?
Businesses are addressed by alias (e.g. pequods-pizza-chicago-3) or an encoded id, both returned by the search endpoint. Use that alias/id with the business, reviews, menu, and photos endpoints.
What Yelp data can I collect?
Public fields: search results (rating, review count, price, categories, address, coordinates, photos); business profile (hours, phone, website, health score, attributes); reviews (rating, text, author, share URL); AI-extracted review highlights; menu items; photo galleries; and address geocoding.
Are Yelp reviews personal data?
Yes. Reviewer names, review text, and location strings are personal data under GDPR/CCPA — collect only public, factual fields with a lawful basis and don't republish reviewer identities.
How often can I refresh?
Ratings and review counts change, so re-pull on a schedule within your plan and responsible-use limits rather than polling continuously.