Cómo hacer scraping de Google AI Overviews: Tutorial 2025

Obtén información sobre qué es la descripción general de la IA de Google y cómo obtenerla mediante programación, además de consejos para obtener resultados fiables y superar los problemas más comunes.
10 min de lectura
How to Scrape Google AI Overview

En este artículo aprenderá:

  • Qué es la visión general de la IA de Google.
  • Cómo funciona y por qué puede ser valioso.
  • Cómo scrapear el Google AI Overview con un tutorial paso a paso.
  • Los retos y cómo superarlos.

Sumerjámonos.

¿Qué es Google AI Overview?

Google AI Overview es una función integrada en la Búsqueda de Google que proporciona resúmenes generados por IA en la parte superior de los resultados de búsqueda. Entre bastidores, funciona con el modelo de lenguaje Gemini de Google.

La sección Google AI Overview

Estos resúmenes sintetizan información de múltiples fuentes de Internet para ofrecer respuestas concisas a las preguntas de los usuarios. Suelen incluir enlaces a los artículos originales, lo que ayuda a los usuarios a profundizar.

Desde mayo de 2025 , los resúmenes de IA están disponibles en más de 200 países y territorios, y en más de 40 idiomas. Al principio, esta función solo estaba disponible en Estados Unidos.

¿Por qué scrapear los resúmenes de Google AI?

Las respuestas generales de la IA de Google son más que las respuestas generales que Gemini o cualquier otro proveedor de IA podría generar. La distinción clave es que se basan en los enlaces SERP(páginas de resultados de motores de búsqueda) y en el contenido de esos enlaces.

En otras palabras, su contenido está respaldado por artículos, páginas y sitios del mundo real, y a menudo incluye enlaces para una mayor lectura y ampliación. Esto es algo que los LLM suelen tener dificultades para hacer.

Por lo tanto, mediante la extracción programática de las descripciones generales de la IA de Google, se podría crear una especie de chatbot de las SERP potenciado por la IA que aproveche los resultados reales de las SERP para producir respuestas optimizadas para RAG. La idea es obtener respuestas basadas en contenido web actual y verificable.

Como aprenderás al final de este artículo, aunque este enfoque es sin duda interesante, existen algunos retos inherentes. Por lo tanto, puedes considerar explorar nuestra guía sobre cómo construir un chatbot SERP a través de RAG.

Cómo raspar Google AI Overview en Python: Guía paso a paso

En esta sección del tutorial, te guiaremos a través del proceso de scraping del Google AI Overview. Usted aprenderá cómo construir un script de Python que:

  • Conecta con Google.
  • Realiza una consulta de búsqueda.
  • Espera a que se cargue la vista general de la IA.
  • Extrae el HTML.
  • Convierte el contenido a Markdown.
  • Exportación a un archivo de salida

Sigue los pasos que se indican a continuación para saber cómo realizar el scraping de Google AI Overview.

Paso nº 1: Configuración del proyecto

Antes de empezar, asegúrate de que tienes Python 3 instalado en tu máquina. Si no es así, descárgalo y sigue el asistente de instalación.

Abra un terminal y ejecute los siguientes comandos:

mkdir google-ai-overview-scraper
cd google-ai-overview-scraper
python -m venv venv

Esto creará una nueva carpeta google-ai-overview-scraper/ para tu proyecto scraper e inicializará un entorno virtual.

Carga la carpeta del proyecto en tu IDE de Python favorito. PyCharm Community Edition o Visual Studio Code con la extensión Python son dos buenas opciones.

En la carpeta del proyecto, crea un archivo scraper.py:

google-ai-overview-scraper/
├── venv/              # Your Python virtual environment
└── scraper.py         # Your scraping script

scraper.py es ahora un script en blanco, pero pronto contendrá la lógica de scraping.

En el terminal del IDE, activa el entorno virtual. En Linux o macOS, dispara este comando:

source ./venv/bin/activate

Alternativamente, en Windows, ejecute:

venv/Scripts/activate

Muy bien. Ya tienes un entorno Python limpio para tu proyecto de scraping.

Paso 2: Instalar Playwright

Google es una plataforma dinámica y, con las últimas actualizaciones, ahora requiere la ejecución de JavaScript para cargar completamente la mayoría de las páginas. Además, crear manualmente una URL válida para la Búsqueda de Google puede resultar complicado. Por eso, la mejor forma de interactuar con la Búsqueda de Google es simulando el comportamiento del usuario en un navegador.

Dicho de otro modo, para extraer la sección “AI Overview”, necesitas una herramienta de automatización del navegador. Esto te permite iniciar un navegador real, cargar páginas web e interactuar con ellas mediante programación, como lo haría un usuario.

Una de las mejores herramientas de automatización de navegadores para Python es Playwright. En su entorno virtual Python activado, instale Playwright mediante el paquete pip playwright:

pip install playwright

Ahora, complete la instalación de Playwright con:

python -m playwright install

Este comando descargará los ejecutables de navegador necesarios y otros componentes que Playwright necesita para controlar los navegadores web.

Para más detalles sobre el uso de esta herramienta, lea nuestra guía sobre el web scraping con Playwright.

¡Impresionante! Ya lo tienes todo listo para empezar a extraer la sección “Visión general de la IA” de Google.

Paso nº 3: Acceder a la página de inicio de Google

Abre tu archivo scraper.py, importa Playwright e inicializa una instancia de Chromium en modo headless:

import asyncio
from playwright.async_api import async_playwright

async def run():
    async with async_playwright() as p:
        # Start a new Chromium instance
        browser = await p.chromium.launch(headless=True) # Set to False while developing
        context = await browser.new_context()
        page = await context.new_page()

Este fragmento crea una instancia de Playwright Page, que permite controlar mediante programación una pestaña del navegador. Si establece headless=True, el navegador se ejecutará en segundo plano, sin interfaz gráfica de usuario. Si está desarrollando o desea depurar, establezca headless=False para observar lo que hace su script mientras se ejecuta.

Dado que async_playwright se ejecuta de forma asíncrona, el script debe utilizar el módulo asyncio de Python.

Descargo de responsabilidad: Ten en cuenta que las nuevas funciones de Google AI Overview suelen implementarse primero en Estados Unidos. Para obtener resultados más precisos, es posible que tengas que geolocalizar tu equipo en una ciudad de EE.UU. Para ello, integra Playwright con un proxy web. En concreto, eche un vistazo a nuestras opciones de proxy para EE. UU.

A partir de ahora, supondremos que opera desde Estados Unidos.

Ahora, utiliza el método goto() de Playwright para abrir la página de inicio de Google:

await page.goto("https://google.com/")

Recuerda siempre limpiar los recursos cerrando el navegador al final de tu script:

await browser.close()

Póngalo todo junto, y obtendrá:

import asyncio
from playwright.async_api import async_playwright

async def run():
    async with async_playwright() as p:
        # Start a new Chromium instance
        browser = await p.chromium.launch(headless=True) # Set to False while developing
        context = await browser.new_context()
        page = await context.new_page()

        # Navigate to Google
        await page.goto("https://google.com/")

        # scraping logic goes here ...

        # Close the browser and free resources
        await browser.close()

asyncio.run(run())

Fantástico. Usted está listo para raspar sitios web dinámicos como Google.

Paso nº 4: Enviar el formulario de búsqueda

Accede a la página principal de Google en tu navegador. Haz clic con el botón derecho en la barra de búsqueda y selecciona “Inspeccionar” para abrir las Herramientas para desarrolladores del navegador:

Inspección del área de texto de búsqueda de Google

La estructura HTML de Google a menudo utiliza clases y atributos generados dinámicamente, que probablemente cambien en cada despliegue. Esto los hace poco fiables para el scraping, ya que sus selectores se romperán con el tiempo.

En su lugar, diríjase a atributos HTML estables. Por ejemplo, el área de texto de búsqueda tiene un atributo aria-label claro:

textarea[aria-label="Search"]

Utiliza el método fill() para seleccionar el área de texto de búsqueda y rellenarla con la consulta de búsqueda de Google:

await page.fill("textarea[aria-label='Search']", search_query)

En este ejemplo, la variable search_query se define como se indica a continuación:

search_query = "What is web scraping?"

Tenga en cuenta que el uso de una consulta de tipo pregunta es una buena forma de incitar a Google a generar la sección Descripción general de la IA. Esto es importante, ya que dicha sección no siempre se incluye en las páginas de resultados de búsqueda. No dudes en adaptar la consulta de búsqueda a tu caso de uso específico.

A continuación, active la búsqueda simulando una pulsación de la tecla Intro:

await page.keyboard.press("Enter")

Si ejecutas el script en modo headful(headless=False) y estableces un breakpoint en la línea page.close(), esto es lo que deberías ver:

La ventana Chromium controlada por Playwright

Observe la sección “Visión general de la IA” en la parte superior de la página de resultados. Si no aparece, intente volver a ejecutar el script con una consulta diferente, más parecida a una pregunta. ¡Sorprendente!

Paso 5: Extraer la sección de información general de Google AI

Si exploras cómo funciona la función AI Overview de Google, te darás cuenta de que hay tres escenarios posibles:

  1. Respuesta en caché: El fragmento de AI Overview ya está almacenado en caché y aparece al instante.
  2. Generación en tiempo real: El resumen de IA se genera de forma dinámica, con un breve retraso mientras Google procesa la consulta.
  3. No AI Overview: Google no muestra en absoluto la sección AI Overview.

En esta sección, vamos a centrarnos en el Escenario 2, en el que la Visión General de la IA se genera sobre la marcha. Este es el caso más complicado, y también cubre el Escenario 1.

Para activarlo, pruebe a utilizar consultas de tipo pregunta nuevas o menos habituales. Por ejemplo:

Observa cómo Google tarda un tiempo en generar la sección "Visión general de la IA".

Como se muestra más arriba, la sección AI Overview aparece tras unos milisegundos de procesamiento. En concreto, sólo puede considerarse lista cuando su elemento title contiene el texto “AI Overview”.

Por lo tanto, inspeccione el elemento que contiene el título AI Overview:

Inspección del elemento HTML AI Overview title

Puede seleccionar el título utilizando el siguiente selector CSS:

div[jsname][role="heading"] strong

Para asegurarse de que la sección “Visión general de la IA” está presente, espere a que este elemento aparezca y contenga el texto correcto:

await page.locator(
    "div[jsname][role='heading'] strong", has_text="ai overview"
).first.wait_for(timeout=30000)

Esto esperará hasta 30 segundos (30000 milisegundos) para que el elemento con el texto “ai overview” (insensible a mayúsculas y minúsculas) esté en la página.

Ahora que está seguro de que se ha cargado la sección Visión general de la IA, prepárese para rasparla. En la mayoría de los casos, una parte del contenido se oculta inicialmente tras un botón “Mostrar más”:

Inspeccionar el botón "Mostrar más

Para obtener la respuesta completa, compruebe si aparece el botón “Mostrar más” y haga clic en él:

try:
    # Clicking the "Show more" button if it is present on the page
    ai_overview_show_more_button = page.locator("div[aria-label='Show more AI Overview']").first
    await ai_overview_show_more_button.click()
except PlaywrightTimeoutError:
    print("'Show more' button not present")

No olvide importar PlaywrightTimeoutError, que se activa cuando la función locator() no encuentra el elemento especificado:

from playwright.async_api import TimeoutError as PlaywrightTimeoutError

Una vez que la sección completa sea visible, inspeccione la estructura HTML para determinar cómo seleccionarla:

Inspección del elemento de contenido AI Overview

Como puede ver, el contenido principal de la vista general de la IA puede seleccionarse utilizando este selector CSS:

div[jsname][data-rl] div

Utilice el siguiente código para localizar el elemento y extraer su HTML:

ai_overview_element = page.locator("div[jsname][data-rl] div").first
ai_overview_html = await ai_overview_element.evaluate("el => el.outerHTML")

Si se pregunta por qué hemos extraído el HTML en lugar de sólo el texto, siga leyendo.

Ya está. Has rastreado con éxito la sección Google AI Overview.

Paso 6: Convertir la descripción general de Google AI de HTML a Markdown

Cuando se trata de web scraping, el objetivo más común es extraer el texto de los elementos, no su HTML completo. Sin embargo, en la mayoría de los casos, el contenido generado por la IA dentro de la sección Google AI Overview no es texto sin formato.

En cambio, puede incluir viñetas, enlaces, subtítulos e incluso imágenes. Tratar ese contenido como texto sin formato eliminaría toda esa estructura y contexto, información valiosa que debe conservar.

Por eso, un enfoque mejor es tratar el resumen de IA como HTML sin procesar y luego convertirlo a Markdown, un formato ideal para las aplicaciones de IA.

Para convertir el HTML en Markdown, instale Markdownify en su entorno activado:

pip install markdownify

Impórtalo:

from markdownify import markdownify as md

Y utilízalo para convertir datos de HTML a Markdown:

ai_overview_markdown = md(ai_overview_html)

Estupendo. Todo lo que queda por hacer es exportar el AI Overview a un archivo Markdown.

Paso 7: Exportar los datos obtenidos

Emplea la biblioteca estándar de Python para abrir un archivo de salida llamado ai_overview.md, y escribe en él el contenido Markdown convertido:

with open("ai_overview.md", "w", encoding="utf-8") as f:
    f.write(ai_overview_markdown)

Este es el final de tu viaje de Google AI Overview scraping.

Paso 8: Póngalo todo junto

En este momento, scraper.py debe contener:

import asyncio
from playwright.async_api import async_playwright
from playwright.async_api import TimeoutError as PlaywrightTimeoutError
from markdownify import markdownify as md

async def run():
    async with async_playwright() as p:
        # Start a new Chromium instance
        browser = await p.chromium.launch(headless=True) # Set to False while developing
        context = await browser.new_context()
        page = await context.new_page()

        # Navigate to Google
        await page.goto("https://google.com/")

        # Fill out search form
        search_query = "What is web scraping?" # Replace it with the search query of interest
        await page.fill("textarea[aria-label='Search']", search_query)
        await page.keyboard.press("Enter")

        # Wait for the AI overview section to be ready
        await page.locator(
            "div\[jsname\][role='heading'] strong", has_text="ai overview"
        ).first.wait_for(timeout=30000)

        try:
            # Clicking the "Show more" button if it is present on the page
            ai_overview_show_more_button = page.locator("div[aria-label='Show more AI Overview']").first
            await ai_overview_show_more_button.click()
        except PlaywrightTimeoutError:
            print("'Show more' button not present")

        # Extract the AI overview HTML
        ai_overview_element = page.locator("div\[jsname\][data-rl] div").first
        ai_overview_html = await ai_overview_element.evaluate("el => el.outerHTML")

        # Convert the HTML to Markdown
        ai_overview_markdown = md(ai_overview_html)

        # Export the Markdown to a file
        with open("ai_overview.md", "w", encoding="utf-8") as f:
            f.write(ai_overview_markdown)

        # Close the browser and free resources
        await browser.close()

asyncio.run(run())

¡Impresionante! Con menos de 50 líneas de código, acabas de raspar la sección AI Overview de Google.

Ejecuta el scaper Google AI Overview anterior con:

python script.py

Si todo va como se espera, aparecerá un archivo ai_overview.md en la carpeta del proyecto. Ábrelo y deberías ver algo como:

Web scraping is the process of using automated tools (called scrapers or bots) to extract content and data from websites. Unlike screen scraping, which captures only the visible pixels, web scraping delves deeper to retrieve the underlying HTML code and data stored in a website's database. This extracted data can then be used for various purposes like price comparison, market research, or data analysis.

Here's a more detailed explanation:

* **Automated Extraction:**
  Web scraping involves using software to automatically visit websites, locate and extract specific data, and save it in a structured format like a CSV file or database.

* **HTML and Database Data:**
  Scrapers don't just copy the visual content; they access the HTML code and data stored in the website's database to retrieve more comprehensive information.

* **Various Use Cases:**
  Web scraping is employed for various purposes, including price comparison, market research, competitor analysis, lead generation, sentiment analysis, and more.

* **Not Just for Businesses:**
  While businesses often use web scraping for data-driven decision-making, it's also valuable for individuals seeking price comparisons, market trends, or general data analysis.

* **Consider Ethical and Legal Implications:**
  When web scraping, it's crucial to be aware of the website's terms of service and robots.txt file to ensure you are not violating their policies or engaging in illegal activities. 

Copie el contenido Markdown anterior y péguelo en un visor Markdown como StackEdit:

Observe la representación Markdown a la derecha

Esta es exactamente la versión estructurada, fácil de leer y rica en información del fragmento de información general de la IA de Google, convertida de HTML a Markdown.

¡Et voilà! Misión cumplida.

Desafíos en el análisis de la IA de Google

Si sigues ejecutando el script en modo encabezado, en algún momento, es probable que te encuentres con esta página de bloqueo:

El CAPTCHA de Google detiene su bot

Si realizas demasiadas solicitudes automáticas o utilizas una dirección IP con una puntuación de fiabilidad baja, Google detectará tu actividad como la de un bot y te retará con un reCAPTCHA.

Como solución, puede intentar evitar los CAPTCHA en Python. Esto puede funcionar para CAPTCHAs más simples, pero a menudo falla contra versiones más avanzadas o nuevas de reCAPTCHA como reCAPTCHA v3.

En tales casos, es probable que necesite un servicio premium de resolución de CAPTCHA. Otro método consiste en configurar Playwright para que funcione en un navegador distinto de Chromium. El problema es que, por defecto, Playwright instrumenta Chromium (o cualquier otro navegador) de forma que pueda ser detectado por los sistemas anti-bot de Google.

Para evitar la detección, puede integrar Playwright con AI Agent Browser. Se trata de un navegador en la nube compatible con Playwright y especializado en el raspado web y la recuperación de datos en flujos de trabajo agénticos.

Las ventajas de este enfoque incluyen una escalabilidad casi infinita y una reducción significativa de los desafíos CAPTCHA. Incluso cuando aparecen CAPTCHAs, Agent Browser viene con capacidades de resolución de CAPTCHA, así como la integración de proxy, lo que le permite geolocalizar su Google AI Overview scraping a cualquier país o idioma.

Conclusión

En este tutorial, has aprendido qué es la Visión General de la IA de Google y cómo extraer datos de ella. Como has visto, construir un simple script en Python para recuperar automáticamente estos datos requiere sólo unas pocas líneas de código.

Aunque esta solución funciona bien para proyectos pequeños, no es práctica para el scraping a gran escala. Google utiliza algunas de las tecnologías anti-bot más avanzadas del sector, lo que puede dar lugar a CAPTCHAs o bloqueos de IP. Además, escalar este proceso a través de muchas páginas aumentaría significativamente los costes de infraestructura.

Si necesita datos de SERP de Google para sus flujos de trabajo de IA, considere la posibilidad de utilizar una API que proporcione directamente datos de SERP listos para IA, como la API de SERP de Bright Data.

Cree una cuenta gratuita de Bright Data y acceda a todas las soluciones de nuestra infraestructura de datos de IA.