Skip to content

Instantly share code, notes, and snippets.

@seoutopico
Last active February 24, 2026 13:04
Show Gist options
  • Select an option

  • Save seoutopico/580ac7874e7f4bbd0673739de0624d23 to your computer and use it in GitHub Desktop.

Select an option

Save seoutopico/580ac7874e7f4bbd0673739de0624d23 to your computer and use it in GitHub Desktop.
Google AI Overview Scraper Un bookmarklet que extrae de forma sencilla los títulos y URLs que aparecen en los AI Overviews de Google.

Bookmarklet: Extraer enlaces de panel Google

Este bookmarklet permite extraer los enlaces de los resultados en el panel lateral de Google (contenedor .mv7LYc) y:

  • Tomar solo un enlace por resultado (<li>).
  • Copiar automáticamente al portapapeles en formato de lista con guiones.
  • Mostrar un popup con los enlaces extraídos para visualizarlos o copiarlos otra vez.

Instalación

  1. Copia el código del bookmarklet (más abajo).
  2. Crea un marcador nuevo en tu navegador.
  3. En la URL del marcador pega todo el código.
  4. Dale un nombre, por ejemplo: Extraer enlaces.

Uso

  1. Haz una búsqueda en Google que muestre un panel lateral con enlaces (ej: listas de libros).

  2. Haz clic en el marcador Extraer enlaces.

  3. Se abrirá un popup con:

    • El listado de enlaces en formato:

      - Título — URL
      - Título — URL
      ...
      
    • Botón para cerrar.

    • Botón para copiar otra vez al portapapeles.


Código del bookmarklet


Notas

  • Si Google cambia las clases, puede ser necesario actualizar el selector.
  • Si no se logra copiar automáticamente, puedes usar el textarea del popup para copiar manualmente.
  • Funciona en navegadores modernos (Chrome, Edge, Firefox).
javascript:void((function(){var c=document.querySelector('.YzCcne');if(!c){alert('No hay AI Overview');return}var q=c.querySelector('[data-q]');q=q?q.getAttribute('data-q'):'';var cl=c.cloneNode(true);cl.querySelectorAll('button,script,style,h2,svg,g-dropdown-menu,[role="button"],.QUUgY,.Hc6GJ').forEach(function(e){e.remove()});var t=cl.innerText;t=t.replace(/^[\s\S]*?Vista creada con IA\s*(\+\d+\s*)?/,'');t=t.replace(/Profundizar en Modo IA[\s\S]*/,'');t=t.replace(/Mostrar más[\s\S]*/,'');t=t.replace(/Las respuestas de la IA[\s\S]*/,'');t=t.replace(/\n{3,}/g,'\n\n').trim();var links=c.querySelectorAll('a.NDNGvf[href^="http"]');var s=[];var seen={};for(var i=0;i<links.length;i++){var h=links[i].href;if(seen[h]||h.indexOf('google.com')!==-1)continue;seen[h]=true;var a=links[i].getAttribute('aria-label')||'';a=a.replace(/\.\s*Se abre en una nueva pestaña\.?$/,'').replace(/\.\s*Opens in a new tab\.?$/,'').trim();if(!a){try{a=new URL(h).hostname.replace('www.','')}catch(e){a=h}}s.push({anchor:a,url:h})}var o=JSON.stringify({extracted_at:new Date().toISOString(),query:q,url:location.href,ai_overview:{text:t,words:t.split(/\s+/).filter(Boolean).length,sources:s}},null,2);navigator.clipboard.writeText(o).then(function(){var d=document.createElement('div');d.textContent='JSON copiado ('+s.length+' fuentes)';d.style.cssText='position:fixed;top:20px;right:20px;z-index:999999;background:#1a1a2e;color:#fff;padding:12px 20px;border-radius:10px;font:14px system-ui';document.body.appendChild(d);setTimeout(function(){d.remove()},2500)}).catch(function(){prompt('JSON:',o)})})())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment