Esta receta combina navegación del navegador, extracción del DOM, almacenamiento del espacio de trabajo e indexación de búsqueda de texto completo.
// Extraer y guardar - Extraer datos y guardarlos//// Este script navega a una pagina, extrae datos estructurados// mediante consultas DOM y guarda los resultados en el almacen// del espacio de trabajo. Combina automatizacion del navegador,// extraccion de datos y persistencia.// Requiere un espacio de trabajo abierto.
const targetUrl = "https://example.com";const collection = "scraped-pages";
// Asegurarse de tener una pestana de navegadorawait g.tabs.newBrowserTab();
g.log("Navegando a " + targetUrl + "...");await g.nav.navigateToUrl(targetUrl);
// Extraer datos de la paginaconst title = await g.page.executeJS("document.title");const heading = await g.dom.extractContent("h1");const bodyText = await g.dom.extractContent("p");
// Construir un registro estructuradoconst pageData = { url: targetUrl, title: title, heading: heading, excerpt: bodyText ? bodyText.substring(0, 200) : "", scrapedAt: new Date().toISOString()};
g.log("Extraido: " + pageData.title);
// Guardar en el almacen del espacio de trabajoconst key = targetUrl.replace(/[^a-zA-Z0-9]/g, "-");g.store.put(collection, key, pageData);g.log("Guardado en el almacen: " + collection + "/" + key);
// Indexar para busqueda de texto completog.search.index({ _key: key, _collection: collection, title: pageData.title, heading: pageData.heading, excerpt: pageData.excerpt, url: pageData.url});g.log("Indexado para busqueda");
// Verificar: consultarlo de nuevoconst results = g.search.query("example");if (results && results.length > 0) { g.log("La busqueda encontro " + results.length + " resultado(s)");}