このレシピは、ブラウザー移動、DOM 抽出、ワークスペース保存、全文検索インデックス化を組み合わせます。
// 抽出して保存 - データを取り出して保存する//// このスクリプトはページへ移動し、DOM クエリで構造化データを抽出し、// 結果をワークスペースストアへ保存します。// ブラウザー自動化、データ抽出、永続化を組み合わせます。// 開いているワークスペースが必要です。
const targetUrl = "https://example.com";const collection = "scraped-pages";
// ブラウザータブを用意するawait g.tabs.newBrowserTab();
g.log("移動中: " + targetUrl + "...");await g.nav.navigateToUrl(targetUrl);
// ページからデータを抽出するconst title = await g.page.executeJS("document.title");const heading = await g.dom.extractContent("h1");const bodyText = await g.dom.extractContent("p");
// 構造化レコードを作るconst pageData = { url: targetUrl, title: title, heading: heading, excerpt: bodyText ? bodyText.substring(0, 200) : "", scrapedAt: new Date().toISOString()};
g.log("抽出しました: " + pageData.title);
// ワークスペースストアへ保存するconst key = targetUrl.replace(/[^a-zA-Z0-9]/g, "-");g.store.put(collection, key, pageData);g.log("ストアへ保存しました: " + collection + "/" + key);
// 全文検索用にインデックス化するg.search.index({ _key: key, _collection: collection, title: pageData.title, heading: pageData.heading, excerpt: pageData.excerpt, url: pageData.url});g.log("検索用にインデックス化しました");
// 確認: 検索で取り出すconst results = g.search.query("example");if (results && results.length > 0) { g.log("検索結果: " + results.length + " 件");}