Volver al blog
Guías
Andrei OgiolanLast updated on Mar 31, 20267 min read

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, ya que ofrece a los usuarios una forma sencilla de encontrar y explorar lugares, negocios y puntos de interés. Una de las características clave 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 con nuestra API utilizando Node.js. Abordaremos todo, desde la configuración del entorno de desarrollo hasta la extracción de datos relevantes y el análisis de posibles problemas. Al final de este artículo, dispondrás de los conocimientos y las herramientas necesarios para extraer resultados de lugares de Google Maps por tu cuenta.

¿Por qué deberías utilizar un scraper profesional en lugar de crear el tuyo propio?

Utilizar un scraper profesional puede ser una mejor opción que crear uno propio por varias razones. En primer lugar, los scrapers profesionales están diseñados para gestionar una amplia variedad de tareas de scraping y están optimizados en cuanto a rendimiento, fiabilidad y escalabilidad. Están diseñados para gestionar grandes cantidades de datos y pueden manejar diversos tipos de sitios web y tecnologías web. Esto significa que los scrapers profesionales suelen extraer datos más rápido y con mayor precisión que un scraper creado a medida.

Además, los scrapers profesionales suelen incluir funciones integradas como la resolución de CAPTCHA, la rotación de IP y la gestión de errores, lo que puede hacer que el proceso de scraping sea más eficiente y menos propenso a errores. También ofrecen asistencia y documentación que pueden resultar útiles si te encuentras con algún problema.

Otro aspecto importante es que los proveedores de scrapers profesionales cumplen con las políticas de scraping de los sitios web que rastrean y pueden garantizar un uso legal de los datos, algo importante a tener en cuenta al extraer datos.

Por último, en nuestro caso concreto, para extraer reseñas de Google Maps y obtener los mejores resultados, es necesario pasar un parámetro data_id a la URL de Google. Este parámetro suele tener un aspecto similar a este: 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.

Definición de nuestro objetivo

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

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

Extraer reseñas de Google Maps puede ser útil para empresas que desean realizar un seguimiento y analizar el rendimiento de sus establecimientos, para investigadores que desean estudiar patrones en el comportamiento de los consumidores y para personas que desean encontrar 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 sentimiento de las reseñas y encontrar patrones en el comportamiento de los consumidores. Las personas también pueden utilizar esta información para tomar decisiones sobre dónde ir y qué hacer.

¿Cómo es nuestro objetivo?

Configuración

Antes de empezar a extraer 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 JavaScript en el lado del servidor, y que se puede descargar desde su página web oficial. Además, se requiere una clave API, que se puede obtener creando una cuenta aquí y activando el servicio SERP.

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

$ touch scraper.js

Y ahora pega la siguiente línea en tu archivo:

console.log("Hello World!")

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 estás listo para pasar al paso final. 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, ya que es fácil de usar y no requiere la instalación de ninguna biblioteca adicional.

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

​​const https = require("https");

En segundo lugar, debes especificar tu clave API, un término de búsqueda y las coordenadas del lugar que te 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:

El siguiente paso es incluir el ID del lugar obtenido en un objeto de opciones, para que nuestra API sepa 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, debes 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 devuelvan los resultados:

​​$ node scraper.js

Y deberías ver la propiedad data_id impresa en la pantalla:

$ ​​0x87c0ef253b04093f:0xafdfd6dc1d3a2b4es

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

Empecemos a extraer reseñas de Google

Con el entorno configurado, 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" // the data_id we retrieved earlier

Ahora, lo único que queda por hacer es modificar el objeto options, indicando así 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! Ha extraído con éxito reseñas de Google Maps utilizando nuestra API y ahora puede utilizar los datos obtenidos para diversos fines, como análisis de datos, análisis empresarial, aprendizaje automático y mucho más. Para obtener más información y ver ejemplos de código en otros 6 lenguajes de programación, puede consultar nuestra documentación sobre reseñas de Google Maps.

Limitaciones de las reseñas de Google Maps

Aunque utilizar un scraper profesional para extraer reseñas de Google Maps puede ser más eficiente y preciso que crear tu propio scraper, hay algunas limitaciones que debes tener en cuenta. Una de ellas es que algunos scrapers profesionales pueden tener límites de uso, lo que significa que solo puedes extraer un número determinado de reseñas al día o al mes. Otra limitación es que algunos scrapers 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 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, el scraping de reseñas de Google Maps puede ser una herramienta valiosa para empresas, investigadores y particulares. Te permite recopilar datos a gran escala y analizarlos para diversos fines. Sin embargo, es importante tener en cuenta que existen limitaciones a la hora de realizar scraping de reseñas de Google Maps, incluyendo límites de uso, CAPTCHAs, 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 estas 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 @ 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.