← Volver a recetas

Extraer y guardar datos de una página

Extrae contenido de la página, guárdalo en el almacén del espacio de trabajo e indízalo para búsqueda de texto completo.

Extracción de datos Principiante JavaScript scrape_and_store.js

Requisitos previos

  • Un espacio de trabajo de Guida abierto

Resultado esperado

Guida guarda un registro de página extraída en el almacén del espacio de trabajo y lo indexa para búsqueda.

Ejemplo de código fuente

scrape_and_store.js

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 navegador
await g.tabs.newBrowserTab();
g.log("Navegando a " + targetUrl + "...");
await g.nav.navigateToUrl(targetUrl);
// Extraer datos de la pagina
const title = await g.page.executeJS("document.title");
const heading = await g.dom.extractContent("h1");
const bodyText = await g.dom.extractContent("p");
// Construir un registro estructurado
const 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 trabajo
const 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 completo
g.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 nuevo
const results = g.search.query("example");
if (results && results.length > 0) {
g.log("La busqueda encontro " + results.length + " resultado(s)");
}