← Retour aux recettes

Scraper et stocker les données d'une page

Extraire le contenu d'une page, l'enregistrer dans le stockage de l'espace de travail et l'indexer pour la recherche plein texte.

Scraping et extraction Débutant JavaScript scrape_and_store.js

Prérequis

  • Un espace de travail Guida ouvert

Résultat attendu

Guida stocke un enregistrement de page scrapée dans l'espace de travail et l'indexe pour la recherche.

Exemple source

scrape_and_store.js

Cette recette combine navigation navigateur, extraction DOM, stockage d’espace de travail et indexation plein texte.

// Scrape and Store — Extract data and save it
//
// This script navigates to a page, extracts structured data
// using DOM queries, and saves results to the workspace store.
// Combines browser automation, data extraction, and persistence.
// Requires an open workspace.
const targetUrl = "https://example.com";
const collection = "scraped-pages";
// Ensure we have a browser tab
await g.tabs.newBrowserTab();
g.log("Navigating to " + targetUrl + "...");
await g.nav.navigateToUrl(targetUrl);
// Extract data from the page
const title = await g.page.executeJS("document.title");
const heading = await g.dom.extractContent("h1");
const bodyText = await g.dom.extractContent("p");
// Build a structured record
const pageData = {
url: targetUrl,
title: title,
heading: heading,
excerpt: bodyText ? bodyText.substring(0, 200) : "",
scrapedAt: new Date().toISOString()
};
g.log("Extracted: " + pageData.title);
// Save to the workspace store
const key = targetUrl.replace(/[^a-zA-Z0-9]/g, "-");
g.store.put(collection, key, pageData);
g.log("Saved to store: " + collection + "/" + key);
// Index for full-text search
g.search.index({
_key: key,
_collection: collection,
title: pageData.title,
heading: pageData.heading,
excerpt: pageData.excerpt,
url: pageData.url
});
g.log("Indexed for search");
// Verify: query it back
const results = g.search.query("example");
if (results && results.length > 0) {
g.log("Search found " + results.length + " result(s)");
}