← Zurück zu den Rezepten

Seitendaten extrahieren und speichern

Seiteninhalt extrahieren, im Arbeitsbereichsspeicher sichern und für Volltextsuche indexieren.

Scraping und Extraktion Einsteiger JavaScript scrape_and_store.js

Voraussetzungen

  • Ein geöffneter Guida-Arbeitsbereich

Erwartetes Ergebnis

Guida speichert einen extrahierten Seitendatensatz im Arbeitsbereichsspeicher und indexiert ihn für die Suche.

Verwandte Dokumentation

ArbeitsbereicheDaten und Speicher

Quellbeispiel

scrape_and_store.js

Dieses Rezept kombiniert Browsernavigation, DOM-Extraktion, Arbeitsbereichsspeicher und Volltextindexierung.

// Scrape and Store - Daten extrahieren und speichern
//
// Dieses Skript navigiert zu einer Seite, extrahiert strukturierte Daten
// und speichert sie im Arbeitsbereich. Voraussetzung: offener Arbeitsbereich.
const targetUrl = "https://example.com";
const collection = "scraped-pages";
// Sicherstellen, dass ein Browser-Tab vorhanden ist
await g.tabs.newBrowserTab();
g.log("Navigiere zu " + targetUrl + "...");
await g.nav.navigateToUrl(targetUrl);
// Daten aus der Seite extrahieren
const title = await g.page.executeJS("document.title");
const heading = await g.dom.extractContent("h1");
const bodyText = await g.dom.extractContent("p");
// Strukturierten Datensatz bauen
const pageData = {
url: targetUrl,
title: title,
heading: heading,
excerpt: bodyText ? bodyText.substring(0, 200) : "",
scrapedAt: new Date().toISOString()
};
g.log("Extrahiert: " + pageData.title);
// Im Arbeitsbereichsspeicher sichern
const key = targetUrl.replace(/[^a-zA-Z0-9]/g, "-");
g.store.put(collection, key, pageData);
g.log("Im Store gespeichert: " + collection + "/" + key);
// Für Volltextsuche indexieren
g.search.index({
_key: key,
_collection: collection,
title: pageData.title,
heading: pageData.heading,
excerpt: pageData.excerpt,
url: pageData.url
});
g.log("Für Suche indexiert");
// Rückfrage prüfen
const results = g.search.query("example");
if (results && results.length > 0) {
g.log("Suche fand " + results.length + " Ergebnis(se)");
}