Volver al blog
Casos prácticos
Robert Sfichi12 de agosto de 20217 min de lectura

Cómo utilizar WebScrapingAPI para recopilar datos de Yelp

Cómo utilizar WebScrapingAPI para recopilar datos de Yelp

Por qué debe rastrear los datos de la competencia

Investigar los precios de los productos de la competencia, supervisar su línea de productos y categorías o analizar su estrategia en las redes sociales son sólo tres de las tácticas más valiosas que puede utilizar para mejorar su negocio.

Encontrar y comparar los precios de los productos no es una tarea muy difícil, pero requiere mucho tiempo. Utilizar una herramienta de web scraping puede ayudarte a obtener automáticamente información actualizada sobre la estrategia de precios y las ventas flash de tu competencia.

Analizar las líneas de productos y categorías de sus competidores le ayuda a comprender mejor las tendencias que definen el mercado. Por ejemplo, si tienes un restaurante, puedes descubrir que un plato concreto, como la hamburguesa vegana, está de moda en tu ciudad, y hacer ajustes en tu menú para aumentar las ventas.

Las redes sociales no sólo sirven para estrechar el vínculo entre empresa y cliente. Si analizas la estrategia de tus competidores en las redes sociales, podrás averiguar qué funciona y qué no en un par de minutos. Puedes encontrar fácilmente respuestas a preguntas como "¿Cuántas veces publican a la semana?" o "¿Qué elementos visuales mantienen el engagement en un nivel alto?" con sólo hacer un scraping.

Por qué Yelp es el lugar perfecto para obtener datos de la competencia

Yelp es una de las plataformas en línea más populares en la que los usuarios pueden compartir sus experiencias al tiempo que ayudan a otros a tomar decisiones informadas sobre los negocios locales. Si tienes un negocio o estás pensando en abrir uno, conocer información valiosa sobre la competencia puede mejorar tu tasa de éxito con creces. Datos sobre la ubicación exacta, los horarios de trabajo, los servicios de entrega o el tipo de negocio son sólo un par de los que puedes encontrar navegando por Yelp.

Lo que es aún mejor es que puedes disminuir el tiempo que dedicas a analizar a la competencia utilizando una herramienta de web scraping y centrarte más en construir un negocio mejor. Esta estrategia dará sus frutos a largo plazo, ya que automatizar el proceso de recopilación de datos puede convertirse en una de las tareas más tediosas y que más tiempo consumen.

Cómo utilizar WebScrapingAPI para extraer datos de Yelp

En la siguiente sección, utilizaremos Node.js y un par de librerías como got y jsdom para crear el script que obtendrá todos los datos de una página de Yelp y les dará un formato agradable para que sean lo más comprensibles posible. Veamos cómo toda la información presentada anteriormente se puede convertir en resultados tangibles:

1. Encuentre los datos que necesita

Supongamos que estamos interesados en abrir un restaurante en Nueva York. Nos gustaría crear una lista de competidores que incluya información útil como:

  • Número de opiniones
  • Tipo de restaurante
  • Precios
  • Ubicación
Página de resultados de búsqueda de Yelp que muestra listados de restaurantes y un mapa interactivo de la ciudad de Nueva York

La URL que vamos a rastrear es la siguiente: https://www.yelp.ie/search?find_desc=restaurant&find_loc=New +York%2C+NY%2C+United+States&ns=1.

Puede hacer scraping junto con el artículo si comienza su prueba gratuita con 5000 solicitudes y acceso a todas las funcionalidades para probar nuestro producto. Puedes utilizar cualquier herramienta de scraping con la que te sientas más cómodo. Sólo debes saber que a partir de aquí, el tutorial se centrará en cómo obtener los resultados utilizando WebScrapingAPI.

Después de crear una cuenta gratuita, acceda a la página API Playground pulsando el botón "Usar API Playground" en la página Dashboard. La página debería tener este aspecto:

Entorno de pruebas de la API WebScrapingAPI que muestra las opciones de solicitud y un ejemplo de código curl generado con un botón «Copiar»

Tal y como sugiere su nombre, este es el lugar donde podemos probar la herramienta de scraping antes de crear nuestro script. Copiemos la URL presentada anteriormente en la entrada de URL (columna de la izquierda), desplacémonos un poco hacia abajo y pulsemos el botón "Enviar solicitud de API". Esta acción debería devolver un resultado parecido a éste:

Entorno de pruebas de la API WebScrapingAPI que muestra el resultado HTML de una consulta de búsqueda en Yelp

Ahora vamos a construir el script que va a hacer la mayor parte del trabajo por nosotros.

2. Puesta en marcha del proyecto

Crea la carpeta del proyecto, abre una ventana de terminal y navega hasta ella. Como hemos dicho antes, usaremos la librería 'got' para hacer las peticiones y 'jsdom' para nuestras necesidades de parseo. Una vez que hayas accedido a la carpeta del proyecto, ejecuta los siguientes comandos en la terminal:

npm init -y
npm install got jsdom

El proyecto debería incluir ahora los archivos 'package.json'. Crea un nuevo archivo llamado 'index.js' y ábrelo usando tu IDE preferido. Si no tienes ninguno instalado, te recomendamos descargar Visual Studio Code, ya que se considera el IDE más popular actualmente.

3. Hacer una petición

Establezcamos los parámetros, hagamos la petición y analicemos el HTML. Escribe las siguientes líneas en el archivo 'index.js' recién creado:

const {JSDOM} = require("jsdom")

const got = require("got")

(async () => {
const params = {
    api_key: "YOUR_API_KEY,”
    url:"https://www.yelp.ie/search?find_desc=restaurant&find_loc=New+York%2C+NY%2C+United+States&ns=1"
}

const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})


const {document} = new JSDOM(response.body).window

const competitors = document.querySelectorAll('.container__09f24__sxa9-')

console.log(competitors)

})()

Asegúrese de sustituir la cadena "YOUR_API_KEY" por la clave API que le ha proporcionado nuestro servicio. Puede encontrarla en la página del panel de control.

Al ejecutar el script, hacemos una petición al servicio WebScrapingAPI para obtener el HTML de la página de Yelp. A continuación, recopilamos todos los elementos de la página que contienen información sobre nuestros competidores y la registramos en pantalla mediante la función 'console.log'.

4. Inspección de la página

Volvamos a la página de Yelp y averigüemos cómo podemos seleccionar sólo la información que necesitamos. Haz clic con el botón derecho en el nombre del primer restaurante y haz clic en 'Inspeccionar'.

Aparecerá una nueva ventana con el código fuente HTML:

Página de resultados de búsqueda de Yelp con Chrome DevTools resaltando el elemento HTML de un enlace a la ficha de un restaurante

Vamos a encontrar toda la información que necesitamos buscando los elementos HTML que la contienen. En la imagen anterior, podemos ver fácilmente que el elemento que contiene el nombre del restaurante tiene una clase CSS "css-166la90". Para obtener los nombres de todos nuestros competidores, tenemos que seleccionar todos los elementos de la página que tengan esa clase. Haremos lo mismo con todos los detalles presentados anteriormente, como el número de reseñas, el tipo de restaurante, el precio y la ubicación.

5. Formatear la información

Ahora obtendremos toda la información que necesitamos de la respuesta resultante de la API. Obtendremos y formatearemos el nombre del restaurante, la puntuación de la crítica, el tipo de restaurante, el rango de precios y la ubicación. Añade las siguientes líneas de código al archivo 'index.js'.

competitors.forEach((competitor) => {
    if (competitor) {
        const name = competitor.querySelector('.css-166la90')
        if (name) competitor.name = name.innerHTML

        const reviewScore = competitor.querySelector('.reviewCount__09f24__EUXPN')
        if (reviewScore) competitor.review_score = `${reviewScore.innerHTML}/100`

        const types = competitor.querySelectorAll('.css-1hx6l2b')
        if (types) {
            competitor.types = []
            for (type of types) competitor.types.push(type.innerText)
       }

       const priceRange = competitor.querySelector('.priceRange__09f24__2O6le')
       if (priceRange) competitor.price_range = priceRange.innerHTML

       const locationContainer = competitor.querySelector('.priceCategory__09f24__Ylk7h')
       if (locationContainer) {
         let location = locationContainer.querySelector('.css-e81eai')
         competitor.location = location
       }

       results.push(competitor)
    }
})

console.log(results)

Al final, tendremos un array de objetos, y cada uno de ellos contendrá cada competidor de la página y sus datos específicos.

Como se puede ver, el raspado de datos de Yelp utilizando WebScrapingAPI es bastante fácil. Tenemos que utilizar una API de scraping para obtener el contenido HTML, analizar la respuesta, obtener la información relevante de cada elemento de la página y añadirlo todo a una lista.

Conozca a su competencia sin trabajo adicional

Intentar crear un nuevo negocio hoy en día requiere mucho más que tener un gran producto. Existen infinitas oportunidades dependiendo de lo creativo que seas. Algunas de las estrategias más valiosas a las que deben prestar atención los empresarios son:

  • crear una presencia en línea excepcional
  • trabajar para ofrecer el máximo valor al menor precio
  • conocer a fondo las ventajas de la competencia

Todas estas estrategias pueden resultar vitales en el negocio de uno. Es bueno saber que los rascadores web ofrecen una gran ayuda a la hora de abordar estos problemas. Añadir la automatización al proceso de recopilación de datos puede ser el paso más sencillo para mejorar su negocio.

Intentamos echar una mano creando las herramientas necesarias para este tipo de trabajos. Gracias por leer hasta el final y recuerda que WebScraping API tiene una prueba gratuita después de la cual los usuarios son degradados al plan gratuito para que puedas probar la API a tu gusto sin gastar un centavo.

Acerca del autor
Robert Sfichi, desarrollador full-stack en WebScrapingAPI
Robert SfichiDesarrollador full-stack

Robert Sfichi forma parte del equipo de WebScrapingAPI, donde contribuye al desarrollo del producto y ayuda a crear soluciones fiables que dan soporte a la plataforma y a sus usuarios.

Empieza a crear

¿Estás listo para ampliar tu recopilación de datos?

Únete a más de 2000 empresas que utilizan WebScrapingAPI para extraer datos de la web a escala empresarial sin ningún gasto de infraestructura.