Volver al blog
Guías
Andrei Ogiolan21 de abril de 20239 min de lectura

Cómo extraer reseñas de Google Maps

Cómo extraer reseñas de Google Maps

Introducción

Google Maps es uno de los servicios de mapas y navegación más utilizados del mundo, que proporciona a los usuarios una forma sencilla de encontrar y explorar lugares, empresas y puntos de interés. Una de las principales características de Google Maps es la posibilidad de buscar lugares y ver información detallada sobre ellos, como su ubicación, reseñas, fotos y mucho más.

Extraer estos datos de Google Maps puede resultar útil para que las empresas hagan un seguimiento y analicen el rendimiento de sus establecimientos, para que los investigadores estudien los patrones de comportamiento de los consumidores y para que los particulares encuentren y exploren nuevos lugares.

El objetivo de este artículo es ofrecer una guía paso a paso sobre cómo extraer reseñas de Google Maps mediante nuestra API y utilizando Node.js. Abordaremos todos los aspectos, desde la configuración del entorno de desarrollo hasta la extracción de datos relevantes, pasando por el análisis de posibles problemas. Al finalizar este artículo, dispondrás de los conocimientos y las herramientas necesarios para extraer por tu cuenta los resultados de lugares de Google Maps.

¿Por qué deberías utilizar un rascador profesional en lugar de construir el tuyo?

Utilizar un scraper profesional puede ser una mejor opción que crear uno propio por varias razones. En primer lugar, los scraper profesionales están diseñados para manejar una amplia variedad de tareas de scraping y están optimizados para el rendimiento, la fiabilidad y la escalabilidad. Están diseñados para manejar grandes cantidades de datos y pueden manejar varios tipos de sitios web y tecnologías web. Esto significa que los raspadores profesionales a menudo pueden extraer datos con mayor rapidez y precisión que un raspador personalizado.

Además, los raspadores profesionales suelen venir con funciones integradas como la resolución de CAPTCHA, la rotación de IP y la gestión de errores, que pueden hacer que el proceso de raspado sea más eficiente y menos propenso a errores. También ofrecen soporte y documentación que puede ser útil cuando se enfrenta a cualquier problema.

Otro aspecto importante es que los proveedores de scrapers profesionales cumplen las políticas de scraping de los sitios web que scrapean y pueden proporcionar un uso legal de los datos, lo que es importante tener en cuenta a la hora de scrapear datos.

Por último, en nuestro caso concreto, para extraer las reseñas de Google Maps y obtener los mejores resultados, debes pasar un parámetro «data_id» a tu URL de Google. Este parámetro suele tener un formato similar al siguiente: 0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e. Sé que esto puede parecer intimidante al principio, ya que quizá no tengas ni idea de cómo obtener la propiedad data_id de un lugar específico, y tienes razón, porque Google oculta esta información y no es visible en la página cuando buscas un lugar en Google Maps. Pero, afortunadamente, el uso de un rastreador profesional como el nuestro se encarga de ello, encontrando estos datos por ti. En las secciones siguientes hablaremos de cómo obtener el data_id y cómo extraer reseñas de Google Maps utilizando nuestra API.

Definir nuestro objetivo

¿Qué son las reseñas de Google Maps?

Las reseñas de Google Maps son las valoraciones y los comentarios que los usuarios dejan en Google Maps sobre un lugar concreto. Estas reseñas incluyen información como el nombre del usuario, la fecha en que se publicó la reseña, la puntuación otorgada y el texto de la reseña.

Extraer las reseñas de Google Maps puede resultar útil para las empresas que desean realizar un seguimiento y analizar el rendimiento de sus establecimientos, para los investigadores que quieren estudiar los patrones de comportamiento de los consumidores y para las personas que desean descubrir y explorar nuevos lugares. Al extraer los datos de las reseñas, las empresas pueden identificar los puntos fuertes y débiles de sus establecimientos y realizar las mejoras oportunas. Los investigadores pueden estudiar el tono de las reseñas y detectar patrones en el comportamiento de los consumidores. Las personas también pueden utilizar esta información para decidir dónde ir y qué hacer.

¿Cómo es nuestro objetivo?

Vista de las reseñas de negocios en Google Maps, en la que se muestra la puntuación de un restaurante y una lista de reseñas de usuarios con fotos y valoraciones con estrellas

Puesta en marcha

Antes de empezar a recopilar reseñas de Google Maps, es importante disponer de las herramientas necesarias. El requisito principal es Node.js, un entorno de ejecución de JavaScript que permite ejecutar código JavaScript en el lado del servidor, y que se puede descargar desde su página web oficial. Además, se necesita una clave API, que se puede obtener creando una cuenta aquí y activando el servicio SERP.

Después de configurar Node.js y obtener una CLAVE de API, el siguiente paso es crear un archivo de script Node.js. Esto se puede hacer ejecutando el siguiente comando:

$ touch scraper.js 

Y ahora pegue la siguiente línea en su archivo:

console.log("¡Hola Mundo!")

Y ejecute el siguiente comando:

$ node scraper.js

Si ves el mensaje «Hello World!» en la terminal, significa que Node.js se ha instalado correctamente y que ya puedes pasar al último paso. Este último paso consiste en obtener el ID del lugar del que te interesa extraer reseñas. Aquí es donde nuestra API resulta muy útil: es fácil de usar y no requiere la instalación de ninguna biblioteca adicional.

En primer lugar, en un archivo js necesitas importar el módulo incorporado `https` de Node.js para poder enviar peticiones a nuestra API. Esto se puede hacer de la siguiente manera:

const https = require("https");

En segundo lugar, debe especificar su clave API, un término de búsqueda y las coordenadas del lugar que le interesa:

const API_KEY = "<YOUR-API-KEY-HERE>" // You can get by creating an account - https://app.webscrapingapi.com/register

const query = "Waldo%20Pizza"

const coords = "@38.99313451901278,-94.59368586441806"

Consejo: Así es como se obtienen las coordenadas de un lugar en Google Maps:

Ficha de Google Maps con una barra lateral de información de la empresa resaltada en rojo y una flecha que apunta desde el mapa hacia el panel de detalles

El siguiente paso es incluir el Place ID obtenido en un objeto de opciones, para indicar a nuestra API de qué ubicación quieres extraer las reseñas:

const options = {

  "method": "GET",

  "hostname": "serpapi.webscrapingapi.com",

  "port": null,

  "path": `/v1?engine=google_maps&api_key=${API_KEY}&type=search&q=${query}&ll=${coords}`,

  "headers": {}

};

A continuación, debe configurar una llamada a nuestra API con toda esta información:

const req = https.request(options, function (res) {

 const chunks = [];

 res.on("data", function (chunk) {

   chunks.push(chunk);

 });

 res.on("end", function () {

   const body = Buffer.concat(chunks);

   const response = JSON.parse(body.toString());

   const data_id = response.place_results.data_id;

   if (data_id) {

       console.log(data_id);

   }

   else {

       console.log('We could not find a data_id property for your query. Please try using another query')

   }

 });

});

req.end();

Por último, puedes ejecutar el script que acabas de crear y esperar a que se muestren los resultados:

$ node scraper.js

Y deberías obtener de vuelta la propiedad data_id impresa en la pantalla:

$ ​​0x87c0ef253b04093f:0xafdfd6dc1d3a2b4es

Con esto concluye el proceso de configuración. Con la propiedad `data_id`, ya dispones de toda la información necesaria para crear un rastreador de reseñas de Google Maps utilizando nuestra API con Node.js.

Empecemos a recopilar reseñas de Google

Una vez configurado el entorno, ya estás listo para empezar a extraer reseñas de Google Maps con nuestra API. Para continuar, debes configurar el parámetro «data» tal y como se ha mencionado anteriormente. Con toda la información necesaria disponible, puedes configurar el parámetro «data_id» de la siguiente manera:

const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // el data_id que hemos recuperado anteriormente

Ahora, lo único que queda por hacer es modificar el objeto de opciones para indicar a nuestra API que deseas extraer reseñas de Google Maps:

const options = {

  "method": "GET",

  "hostname": "serpapi.webscrapingapi.com",

  "port": null,

  "path": `/v1?engine=google_maps_reviews&api_key=${API_KEY}&data_id=${data_id}`, // there is no need in having a query anymore, data_id is enough to identify a place

  "headers": {}

};

Y esto es todo lo que tienes que hacer. Tu script debería tener ahora este aspecto:

const http = require("https");

const API_KEY = "<YOUR-API-KEY-HERE>"

const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // the data_id we retrieved earlier

const options = {

  "method": "GET",

  "hostname": "serpapi.webscrapingapi.com",

  "port": null,

  "path": `/v1?engine=google_maps_reviews&api_key=${API_KEY}&data_id=${data_id}`, // there is no need in having a query anymore, data_id is enough to identify a place

  "headers": {}

};

const req = http.request(options, function (res) {

  const chunks = [];

  res.on("data", function (chunk) {

    chunks.push(chunk);

  });

  res.on("end", function () {

    const body = Buffer.concat(chunks);

    const response = JSON.parse(body.toString())

    console.log(response);

  });

});

req.end();

Tras ejecutar este script, deberías recibir una respuesta similar a esta:

reviews: [

    {

      link: 'https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUMyem9pOEdBEAE!2m1!1s0x0:0xafdfd6dc1d3a2b4e!3m1!1s2@1:CIHM0ogKEICAgIC2zoi8GA%7CCgwI1vuBkwYQiKeWyQE%7C?hl=en-US',

      date: '8 months ago',

      rating: 5,

      snippet: 'Wow, if you have dietary restrictions this is absolutely the place to go! Both for the variety of restrictions they cater to as well as the taste of the dishes.The good: great tasting food. Very conscious of dietary restrictions which include multiple types of vegan cheeses as well as gluten free. Decent drink selection.The meh: service is nice but a touch slow. Maybe understaffed? Prices are average for pizzas.The bad: noneFeatures: Did not see any masks on anyone inside. Unsure of cleaning practices so I cannot speak to that.Dine in: Yes\n' +

        'Takeout: Yes\n' +

        'Curbside pickup: YesWow, if you have dietary restrictions this is absolutely the place to go! Both for the variety of restrictions they cater to as well as the taste of the dishes. ...More',

      likes: 3,

      user: [Object],

      images: [Array]

    },

    {

      link: 'https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSURXOUxHSUl3EAE!2m1!1s0x0:0xafdfd6dc1d3a2b4e!3m1!1s2@1:CIHM0ogKEICAgIDW9LGIIw%7CCgwI3OnIkQYQwLGL1gM%7C?hl=en-US',

      date: '9 months ago',

      rating: 5,

      snippet: "We love Waldo Pizza! We have dairy allergies and Waldo offers a wide range of vegan cheeses as well as a ton of different toppings. The vegan dessert here is always excellent as well, super rich in flavor. Of course the traditional pizza, pasta and dessert are also amazing! It's great to have both options under one roof!Dine in: Yes\n" +

        'Outdoor seating: No ...More',

      likes: 1,

      user: [Object],

      images: [Array]

    }

    . . . 

]    

¡Y eso es todo! Has extraído con éxito las reseñas de Google Maps utilizando nuestra API y ahora puedes utilizar los datos obtenidos para diversos fines, como el análisis de datos, el análisis empresarial, el aprendizaje automático y mucho más. Si necesitas más información o ejemplos de código en otros seis lenguajes de programación, puedes consultar nuestra documentación sobre las reseñas de Google Maps.

Limitaciones de las reseñas de Google Maps

Aunque utilizar un rastreador profesional para extraer reseñas de Google Maps puede resultar más eficiente y preciso que crear uno propio, hay algunas limitaciones que conviene tener en cuenta. Una de ellas es que algunos rastreadores profesionales pueden tener límites de uso, lo que significa que solo se puede extraer un número determinado de reseñas al día o al mes. Otra limitación es que algunos rastreadores profesionales pueden no ser capaces de eludir los bloqueos de IP o los CAPTCHAs, lo que puede dificultar la extracción de grandes cantidades de datos sin encontrar errores. Por suerte, en WebScrapingAPI contamos con proxies residenciales que rotan las direcciones IP, lo que te cubre las espaldas y elimina la preocupación de ser bloqueado o de sufrir limitaciones de velocidad. Una cosa que debes tener en cuenta es que las reseñas de Google Maps suelen estar redactadas en lenguaje natural, lo que puede dificultar su análisis e interpretación sin el uso de técnicas de procesamiento del lenguaje natural.

Conclusión

En conclusión, la extracción de reseñas de Google Maps puede ser una herramienta valiosa para empresas, investigadores y particulares. Permite recopilar datos a gran escala y analizarlos con diversos fines. Sin embargo, es importante tener en cuenta que existen limitaciones a la hora de extraer reseñas de Google Maps, entre las que se incluyen los límites de uso, los CAPTCHA, los bloqueos de IP y el procesamiento del lenguaje natural. El uso de un rastreador profesional puede hacer que el proceso sea más eficiente y preciso, y puede ayudarte a superar algunas de esas limitaciones. En general, el rastreo de reseñas de Google Maps puede proporcionar información útil, pero es importante abordarlo con precaución y cuidado.

Acerca del autor
Andrei Ogiolan, desarrollador full stack en WebScrapingAPI
Andrei OgiolanDesarrollador Full Stack

Andrei Ogiolan es desarrollador full stack en WebScrapingAPI, donde colabora en todas las áreas del producto y ayuda a crear herramientas y funciones fiables para la plataforma.

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.