이 레시피는 브라우저 이동, 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 + "개");}