← Torna alle soluzioni

Estrarre e salvare dati da una pagina

Estrai contenuto dalla pagina, salvalo nello spazio di archiviazione dello spazio di lavoro e indicizzalo per la ricerca testuale.

Estrazione dati Principiante JavaScript scrape_and_store.js

Prerequisiti

  • Uno spazio di lavoro Guida aperto

Risultato atteso

Guida salva un record di pagina estratta nello spazio di archiviazione dello spazio di lavoro e lo indicizza per la ricerca.

Documentazione correlata

Spazi di lavoroAPI dati e archiviazione

Esempio di codice sorgente

scrape_and_store.js

Questa soluzione combina navigazione del browser, estrazione DOM, archiviazione nello spazio di lavoro e indicizzazione per ricerca testuale.

// Estrai e salva: estrai dati e salvali
//
// Questo script naviga a una pagina, estrae dati strutturati
// usando query DOM e salva i risultati nello spazio di archiviazione dello spazio di lavoro.
// Combina automazione del browser, estrazione dati e persistenza.
// Richiede uno spazio di lavoro aperto.
const targetUrl = "https://example.com";
const collection = "scraped-pages";
// Assicurati di avere una scheda del browser
await g.tabs.newBrowserTab();
g.log("Navigazione verso " + targetUrl + "...");
await g.nav.navigateToUrl(targetUrl);
// Estrai dati dalla pagina
const title = await g.page.executeJS("document.title");
const heading = await g.dom.extractContent("h1");
const bodyText = await g.dom.extractContent("p");
// Costruisci un record strutturato
const pageData = {
url: targetUrl,
title: title,
heading: heading,
excerpt: bodyText ? bodyText.substring(0, 200) : "",
scrapedAt: new Date().toISOString()
};
g.log("Estratto: " + pageData.title);
// Salva nello spazio di archiviazione dello spazio di lavoro
const key = targetUrl.replace(/[^a-zA-Z0-9]/g, "-");
g.store.put(collection, key, pageData);
g.log("Salvato nello spazio di archiviazione: " + collection + "/" + key);
// Indicizza per la ricerca testuale
g.search.index({
_key: key,
_collection: collection,
title: pageData.title,
heading: pageData.heading,
excerpt: pageData.excerpt,
url: pageData.url
});
g.log("Indicizzato per la ricerca");
// Verifica: interrogalo
const results = g.search.query("example");
if (results && results.length > 0) {
g.log("La ricerca ha trovato " + results.length + " risultato/i");
}