<prompt> Tengeneza kifuta wavuti katika JavaScript au TypeScript ukitumia Puppeteer ili kutoa maelezo ya bidhaa jina, bei, na URL ya picha kutoka kwa ukurasa wa matokeo ya utafutaji wa tovuti ya e-commerce. Hifadhi data iliyotolewa katika faili ya JSON.PLINFORMAT  <response>: const fs needfs;const puppeteer needpuppeteer;async Zindua mfano wa kivinjari na uende kwenye ukurasa wa matokeo ya utaftaji const browser wait puppeteer.launch headless: false ; const page subiri browser.newPage; subiri page.goto subiri page.waitForSelector.bidhaa-orodha; Toa maelezo ya bidhaa jina, bei, na URL ya picha const products ukurasa wa kusubiri.eval.bidhaa-kipengee, vitu rudisha vitu.mapitem const name item.querySelector.product-name.innerText; const price item.querySelector.bidhaa-bei.innerText; const imageUrl item.querySelector.product-image img.src; rudisha jina, bei, pichaUrl ; ; ; Hifadhi data iliyotolewa kwenye faili ya JSON fs.writeFileSyncproducts.json, JSON.stringifybidhaa, null, 2; Funga mfano wa kivinjari na uandikishe ujumbe wa mafanikio subiri kivinjari.funga; console.logMaelezo ya bidhaa yamehifadhiwa kwa products.json;; 