Cómo raspar y analizar los resultados de búsqueda de Google con Python

Yannick Weiler

may 13, 202414 min de lectura
Cómo utilizar Python para analizar los resultados de búsqueda de Google
Compartir

TABLA DE CONTENIDOS

Para hacer nuestro contenido accesible a más usuarios, hemos traducido este artículo del inglés al español mediante traducción automática. Haz clic aquí para leer el artículo original. Si detectas algún problema en el contenido, no dudes en escribirnos a report-osteam@semrush.com.

¿Alguna vez has pasado horas analizando los resultados de búsqueda de Google y has acabado más frustrado y confuso que antes?

Python no lo ha hecho.

En este artículo, exploraremos por qué Python es una opción ideal para el análisis de búsquedas en Google y cómo simplifica y automatiza una tarea que, de otro modo, llevaría mucho tiempo.

También realizaremos un análisis SEO en Python de principio a fin. Y proporcionar un código para que lo copies y lo utilices.

Pero primero, algunos antecedentes rápidos.

Por qué utilizar Python para buscar y analizar en Google

Python es conocido como un lenguaje de programación versátil y fácil de aprender. Y realmente brilla al trabajar con datos de búsqueda de Google. 

¿Por qué? 

He aquí algunas razones clave que señalan a Python como la mejor opción para el scraping y el análisis de los resultados de búsqueda de Google:

Python es fácil de leer y utilizar

Python está diseñado pensando en la simplicidad. Así podrás centrarte en analizar los resultados de búsqueda de Google en lugar de enredarte en complicadas sintaxis de codificación.

Sigue una sintaxis y un estilo fáciles de comprender. Lo que permite a los desarrolladores escribir menos líneas de código en comparación con otros lenguajes.

una infografía que muestra el mismo ejemplo utilizando Python, Java y C++

Python tiene bibliotecas bien equipadas

Una biblioteca Python es un trozo de código reutilizable creado por desarrolladores al que puedes hacer referencia en tus scripts para proporcionar una funcionalidad extra sin tener que escribirlo desde cero.

Y Python dispone ahora de una gran cantidad de bibliotecas como:

  • Googlesearch, Requests y Beautiful Soup para el raspado web
  • Pandas y Matplotlib para el análisis de datos 

Estas bibliotecas son potentes herramientas que hacen eficiente el raspado y análisis de datos de las búsquedas de Google.

Python ofrece el apoyo de una gran comunidad y ChatGPT

Estarás bien respaldado en cualquier proyecto Python que emprendas, incluido el análisis de búsquedas en Google.

Porque la popularidad de Python ha dado lugar a una gran comunidad activa de desarrolladores. Y una gran cantidad de tutoriales, foros, guías y herramientas de terceros. 

Y cuando no encuentres código Python preexistente para tu proyecto de análisis de búsqueda, lo más probable es que ChatGPT pueda ayudarte.

Cuando utilices ChatGPT, te recomendamos que le pidas que lo haga:

  • Actuar como experto en Python y
  • Ayuda con un problema

Entonces, declara:

  • El objetivo ("consultar Google") y 
  • El resultado deseado ("la versión más sencilla de una consulta")
un ejemplo de consulta basada en Python en ChatGPT

Configurar tu entorno Python

Tendrás que configurar tu entorno Python antes de poder raspar y analizar los resultados de búsqueda de Google utilizando Python. 

Hay muchas formas de poner en marcha Python. Pero una de las formas más rápidas de empezar a analizar las páginas de resultados del motor de búsqueda de Google(SERPs) con Python es el propio entorno de bloc de notas de Google: Google Colab.

Así de fácil es empezar con Google Colab:

1. Accede a Google Colab: Abre tu navegador y ve a Google Colab. Si tienes una cuenta de Google, inicia sesión. Si no es así, crea una cuenta nueva.

2. Crea un nuevo cuaderno: En Google Colab, haz clic en "Archivo" > "Nuevo cuaderno" para crear un nuevo cuaderno Python.

abrir un nuevo bloc de notas en Google Colab

3. Comprueba la instalación: Para asegurarte de que Python funciona correctamente, realiza una prueba sencilla introduciendo y ejecutando el código que aparece a continuación. Y Google Colab te mostrará la versión de Python instalada actualmente:

import sys
sys.version

¿No era así de sencillo? 

Sólo hay un paso más antes de que puedas realizar una búsqueda real en Google.

Importar el módulo Googlesearch de Python

Utiliza el paquete googlesearch-python para raspar y analizar los resultados de búsqueda de Google con Python. Proporciona una forma cómoda de realizar búsquedas en Google mediante programación. 

Sólo tienes que ejecutar el siguiente código en una celda de código para acceder a este módulo Python de búsqueda en Google:

from googlesearch import search
print("¡Paquete Googlesearch instalado correctamente!")

Una ventaja de utilizar Google Colab es que el paquete googlesearch-python está preinstalado. Por lo tanto, no es necesario hacerlo primero. 

Estará listo cuando veas el mensaje "Paquete Googlesearch instalado correctamente".

Ahora exploraremos cómo utilizar el módulo para realizar búsquedas en Google. Y extrae información valiosa de los resultados de la búsqueda.

Cómo realizar una búsqueda en Google con Python

Para realizar una búsqueda en Google, escribe y ejecuta unas pocas líneas de código que especifiquen tu consulta de búsqueda, cuántos resultados mostrar y algunos detalles más (más sobre esto en la siguiente sección).

# establece la consulta a buscar en Google
consulta = "abrigo largo de invierno"
# ejecuta la consulta y almacena los resultados de la búsqueda
resultados = búsqueda(consulta, tld="com", lang="es", stop=3, pausa=2)
# itera sobre todos los resultados de la búsqueda e imprímelos
para resultado en resultados:
print(resultado)

A continuación, verás los tres primeros resultados de búsqueda de Google para la consulta "abrigo largo de invierno". 

Esto es lo que parece en el cuaderno:

tres primeros resultados de búsqueda en Google para la consulta "abrigo largo de invierno" en el cuaderno

Para verificar que los resultados son exactos, puedes utilizar la Visión general de las palabras clave.

Abre la herramienta, introduce "abrigo largo de invierno" en el cuadro de búsqueda y asegúrate de que la ubicación está establecida en "EE.UU.". Y haz clic en"Buscar". 

busca "abrigo largo de invierno" en EE.UU. en la herramienta Resumen de palabras clave

Desplázate hasta la tabla "Análisis SERP". Y deberías ver las mismas URL (o muy parecidas) en los tres primeros puestos.

"Tabla "Análisis SERP

La Visión general de las palabras clave también te muestra muchos datos útiles a los que Python no tiene acceso. Como el volumen mensual de búsquedas (globalmente y en la ubicación elegida), la dificultad de las palabras clave (una puntuación que indica lo difícil que es situarse entre los 10 primeros resultados para un término determinado), la intención de búsqueda (el motivo de la consulta de un usuario) y mucho más. 

Comprender tu búsqueda en Google con Python

Repasemos el código que acabamos de ejecutar. Para que entiendas lo que significa cada parte y cómo hacer los ajustes según tus necesidades.

Repasaremos cada parte resaltada en la imagen de abajo:

una imagen del código ejecutado anteriormente en Resumen de palabras clave
  1. Variable de consulta: La variable consulta almacena la consulta de búsqueda que quieres ejecutar en Google
  2. Función de búsqueda: La función de búsqueda proporciona varios parámetrosque te permiten personalizar tu búsqueda y obtener resultados específicos:
    1. Consulta: Indica a la función de búsqueda qué frase o palabra debe buscar. Éste es el único parámetro obligatorio, por lo que la función de búsqueda devolverá un error sin él. Este es el único parámetro obligatorio; todos los siguientes son opcionales.
    2. Tld (abreviatura de dominio de nivel superior): Te permite determinar en qué versión del sitio web de Google quieres ejecutar una búsqueda. Si lo configuras como "com", buscarás en google.com; si lo configuras como "fr", buscarás en google.fr.
    3. Idioma: Te permite especificar el idioma de los resultados de la búsqueda. Y acepta un código de idioma de dos letras (por ejemplo, "en" para el inglés).
    4. Parada: Establece el número de resultados de la función de búsqueda. Hemos limitado nuestra búsqueda a los tres primeros resultados, pero quizá quieras establecer el valor en "10".
    5. Pausa: Especifica el tiempo de retardo (en segundos) entre solicitudes consecutivas enviadas a Google. Establecer un valor de pausa adecuado (recomendamos al menos 10) puede ayudar a evitar que Google te bloquee por enviar demasiadas solicitudes demasiado rápido.
  3. Secuencia del bucle For: Esta línea de código indica al bucle que recorra uno a uno los resultados de búsqueda de la colección "resultados", asignando la URL de cada resultado de búsqueda a la variable "resultado".
  4. Acción del bucle for: Este bloque de código sigue a la secuencia del bucle for (está sangrado) y contiene las acciones a realizar en cada URL de resultado de búsqueda. En este caso, se imprimen en el área de salida de Google Colab.

Cómo analizar los resultados de búsqueda de Google con Python

Una vez que hayas raspado los resultados de búsqueda de Google utilizando Python, puedes utilizar Python para analizar los datos y extraer información valiosa. 

Por ejemplo, puedes determinar las SERP de las palabras clave que son lo suficientemente similares como para dirigirte a ellas con una sola página. Lo que significa que Python está haciendo el trabajo pesado que implica la agrupación de palabras clave.

Vamos a ceñirnos a nuestra consulta "abrigo largo de invierno" como punto de partida. Si lo introduces en el Resumen de palabras clave, verás más de 3.000 variaciones de palabras clave.

La tabla "Variaciones de palabras clave" para la consulta "abrigo largo de invierno" muestra 3,0K resultados

En aras de la simplicidad, nos ceñiremos a las cinco palabras clave visibles más arriba. Y hacer que Python los analice y agrupe creando y ejecutando este código en una nueva celda de código de nuestro cuaderno Google Colab:

import pandas as pd
# Define la consulta principal y la lista de consultas
consulta_principal = "abrigo largo de invierno"
consultas_secundarias = ["abrigo largo de invierno mujer", "abrigos largos de invierno mujer", "abrigos largos de invierno para mujer", "abrigos largos de invierno"]
# Ejecuta la consulta principal y almacena los resultados de la búsqueda
resultados_principales = search(consulta_principal, tld="com", lang="en", stop=3, pause=2)
main_urls = set(main_results)
# Diccionario para almacenar los porcentajes de URL de cada consulta
url_percentages = {}
# Iterar sobre las consultas
for secondary_query in secondary_queries:
# Ejecuta la consulta y almacena los resultados de la búsqueda
secondary_results = search(secondary_query, tld="com", lang="en", stop=3, pause=2)
secondary_urls = set(secondary_results)
# Calcula el porcentaje de URL que aparecen en los resultados de la consulta principal
percentage = (len(main_urls.intersection(secondary_urls)) / len(urls_principales)) * 100
url_percentages[consulta_secundaria] = porcentaje
# Crea un marco de datos a partir del diccionario url_percentages
df_url_percentages = pd.DataFrame(url_percentages.items(), columns=['Consulta secundaria', 'Porcentaje'])
# Ordena el marco de datos por porcentaje en orden descendente
df_url_percentages = df_url_percentages.sort_values(by='Porcentaje', ascending=False)
# Imprime el marco de datos ordenado
df_url_percentages

Con 14 líneas de código y una docena de segundos esperando a que se ejecute, ahora podemos ver que los tres primeros resultados son los mismos para estas consultas:

  • "abrigo largo de invierno"
  • "abrigo largo invierno mujer"
  • "abrigos largos de invierno para mujer"
  • "abrigos largos de invierno para mujer"
  • "abrigos largos de invierno"

Así, esas consultas pueden dirigirse a la misma página.

Además, no deberías intentar posicionarte para "abrigo largo de invierno" o "abrigos largos de invierno" con una página que ofrezca abrigos para hombre.

Comprender tu análisis de búsqueda en Google con Python

Una vez más, repasemos el código que acabamos de ejecutar. Esta vez es un poco más complejo, pero las ideas que acabamos de generar también son mucho más útiles.

una imagen del código ejecutado anteriormente en Resumen de palabras clave

1. Importar pandas como pd: Importa la biblioteca Pandas y la hace invocable mediante la abreviatura "pd". Utilizaremos la biblioteca Pandas para crear un "DataFrame", que es esencialmente una tabla dentro del área de salida de Python.

2. Consulta_principal = "python google search": Define la consulta principal para buscar en Google

3. Consultas_secundarias = ["google search python", "google search api python", "python search google", "how to scrape google search results python"]: Crea una lista de consultas que se ejecutarán en Google. Puedes pegar muchas más consultas y hacer que Python agrupe cientos de ellas por ti.

4. Resultados_principales = buscar(consulta_principal, tld="com", lang="es", stop=3, pausa=2): Ejecuta la consulta principal y almacena los resultados de la búsqueda en main_results. Limitamos el número de resultados a tres (stop=3), porque las tres primeras URL de los resultados de búsqueda de Google suelen ser las que mejor satisfacen la intención de búsqueda de los usuarios.

5. URL_principales = set(resultados_principales): Convierte los resultados de la búsqueda de la consulta principal en un conjunto de URLs y los almacena en main_urls

6. Url_porcentajes = {}: Inicializa un diccionario vacío (una lista con pares de valores fijos) para almacenar los porcentajes de URL de cada consulta

una imagen del código descrito en esta sección

7. Para consulta_secundaria en consultas_secundarias :: Inicia un bucle que itera sobre cada consulta secundaria de la lista de consultas secundarias

8. Resultados_secundarios = buscar(consulta_secundaria, tld="com", lang="es", stop=3, pausa=2): Ejecuta la consulta secundaria actual y almacena los resultados de la búsqueda en resultados_secundarios. Limitamos el número de resultados a tres (stop=3) por la misma razón que hemos mencionado antes.

9. URL_secundarias = set(resultados_secundarios): Convierte los resultados de la búsqueda de la consulta secundaria actual en un conjunto de URLs y los almacena en secondary_urls

10. Porcentaje = (len(urls_principales.intersection(urls)) / len(urls_principales)) * 100: Calcula el porcentaje de URL que aparecen tanto en los resultados de la consulta principal como en los resultados de la consulta secundaria actual. El resultado se almacena en la variable porcentaje.

11. Url_porcentajes[consulta_secundaria] = porcentaje: Almacena el porcentaje de URL calculado en el diccionario url_percentages, con la consulta secundaria actual como clave

una imagen del código descrito en esta sección

12. Df_url_porcentajes = pd.DataFrame(url_porcentajes.items(), columns=['Consulta secundaria', 'Porcentaje']): Crea un Pandas DataFrame que contiene las consultas secundarias en la primera columna y su superposición con la consulta principal en la segunda columna. El argumento columnas (que tiene tres etiquetas para la tabla añadida) se utiliza para especificar los nombres de las columnas del DataFrame.

13. Df_url_percentages = df_url_percentages.sort_values(by='Porcentaje', ascendente=False): Ordena el DataFrame df_url_percentages en función de los valores de la columna Porcentaje. Si estableces ascendente=False, la trama de datos se ordena de mayor a menor valor.

14. Df_url_porcentajes: Muestra el DataFrame ordenado en el área de salida de Google Colab. En la mayoría de los demás entornos de Python tendrías que utilizar la función print() para mostrar el DataFrame. Pero no en Google Colab- además la tabla es interactiva.

En resumen, este código realiza una serie de búsquedas en Google y muestra el solapamiento entre los tres primeros resultados de búsqueda de cada consulta secundaria y la consulta principal. 

Cuanto mayor sea el solapamiento, más probabilidades tendrás de clasificarte para una consulta principal y otra secundaria con la misma página. 

Visualizar los resultados de tu análisis de búsqueda en Google

Visualizar los resultados de un análisis de búsqueda en Google puede proporcionar una representación clara e intuitiva de los datos. Y te permiten interpretar y comunicar fácilmente los resultados.

La visualización resulta útil cuando aplicamos nuestro código para la agrupación de palabras clave a no más de 20 ó 30 consultas. 

Nota: En las muestras de consulta más grandes, las etiquetas de consulta del gráfico de barras que vamos a crear se mezclarán entre sí. Lo que hace que el DataFrame creado anteriormente sea más útil para la agrupación.

Puedes visualizar tus porcentajes de URL como un gráfico de barras utilizando Python y Matplotlib con este código:

import matplotlib.pyplot as plt
sorted_percentages = sorted(url_percentages.items(), key=lambda x: x[1], reverse=True)
sorted_queries, sorted_percentages = zip(*sorted_percentages)
# Trazar los porcentajes de URL con el eje x ordenado
plt.bar(consultas_ordenadas, porcentajes_ordenados)
plt.xlabel("Consultas")
plt.ylabel("Porcentaje de URL")
plt.title("Porcentaje de URL en los resultados de búsqueda")
plt.xticks(rotation=45)
plt.ylim(0, 100)
plt.tight_layout()
plt.show()

Vamos a repasar rápidamente el código:

una imagen del código descrito en esta sección

1. Porcentajes_ordenados = ordenados(url_porcentajes.elementos(), clave=lambda x: x[1], inverso=Verdadero): Esto especifica que el diccionario de porcentajes de URL (url_percentages) se ordene por valor en orden descendente utilizando la función sorted(). Crea una lista de tuplas (pares de valores) ordenadas por los porcentajes de URL.

2. Consultas_ordenadas, porcentajes_ordenados = zip(*porcentajes_ordenados): Esto indica que la lista ordenada de tuplas se descomprime en dos listas separadas (consultas_ordenadas y porcentajes_ordenados) utilizando la función zip() y el operador *. El operador * en Python es una herramienta que te permite descomponer las colecciones en sus elementos individuales

una imagen de la sección de código descrita anteriormente

3. Plt.bar(consultas_ordenadas, porcentajes_ordenados): Crea un gráfico de barras utilizando plt.bar() de Matplotlib. Las consultas ordenadas se asignan al eje x (consultas_ordenadas). Y los porcentajes de URL correspondientes se asignan al eje y (porcentajes_ordenados).

4. Plt.xlabel("Consultas"): Establece la etiqueta "Consultas" para el eje x

5. Plt.ylabel("Porcentaje URL"): Establece la etiqueta "Porcentaje de URL" para el eje y

6. Plt.title("Porcentaje de URL en los resultados de búsqueda"): Establece el título del gráfico como "Porcentaje de URL en los resultados de búsqueda"

7. Plt.xticks(rotación=45): Gira 45 grados las etiquetas de las marcas del eje x mediante plt.xticks() para mejorar la legibilidad

8. Plt.ylim(0, 100): Establece los límites del eje y de 0 a 100 mediante plt.ylim() para que el gráfico muestre los porcentajes de URL adecuadamente

9. Plt.tight_layout(): Esta función ajusta el relleno y el espacio entre las subparcelas para mejorar la disposición del gráfico

10. Plt.show(): Esta función se utiliza para mostrar el gráfico de barras que visualiza el análisis de tus resultados de búsqueda en Google

Y éste es el aspecto del resultado:

"Gráfico "Porcentaje de URL en los resultados de búsqueda

Domina la búsqueda en Google con la potencia analítica de Python

Python ofrece increíbles capacidades analíticas que pueden aprovecharse para raspar y analizar eficazmente los resultados de búsqueda de Google.

Hemos visto cómo agrupar palabras clave, pero hay aplicaciones prácticamente ilimitadas para el análisis de búsquedas en Google utilizando Python. 

Pero incluso sólo para ampliar la agrupación de palabras clave que acabamos de realizar, podrías:

  • Raspa las SERPs de todas las consultas a las que quieras dirigirte con una página y extrae todo el texto de los fragmentos destacados para optimizarlos
  • Raspa las preguntas y respuestas dentro de la casilla La gente también pregunta para ajustar tu contenido para que aparezca allí

Necesitarías algo más robusto que el módulo Googlesearch. Existen magníficas interfaces de programación de aplicaciones (API) de SERP que proporcionan prácticamente toda la información que encuentras en una SERP de Google, pero puede que te resulte más sencillo empezar a utilizar la Visión general de las palabras clave.

Esta herramienta te muestra todas las características de las SERP para tus palabras clave objetivo. Así podrás estudiarlos y empezar a optimizar tu contenido.

Compartir
Author Photo
Yannick is a Senior SEO at Zolar.de and has 7 years of experience in ranking websites. He specializes in turning SEO processes that generate rankings into mechanical tools that can be used to improve rankings.