<prompt> Unda kichakachua wavuti cha Golang ambacho huchota maelezo ya bidhaa jina, bei, maelezo kutoka kwa tovuti ya biashara ya mtandaoni na kuhifadhi data katika faili ya JSON. Programu inapaswa kuchukua URL ya ukurasa wa bidhaa kama hoja ya mstari wa amri na kushughulikia utaftaji ikiwa inatumika.PLINFORMAT  <response>: kifurushi kikuukuagiza usimbajijsonfmtioioutilloginethttposstrconvgithub.comPuerkitoBiogoqueryaina ya muundo wa bidhaa Mfuatano wa jina json:jinaMfuatano wa bei json:beiMfuatano wa maelezo json:maelezofunc main ikiwa lenos.Args ! 2 log.FatalMatumizi: go run main.go url : os.Args1bidhaa : Bidhaaukurasa : 1kwa fmt.PrintfUkurasa wa kufuta d...n, ukurasascrapedProducts, hasNextPage : scrapePageurl ?page strconv.Itoaukurasabidhaa nyongezabidhaa, scrapedProducts...if !hasNextPage mapumzikoukurasajsonData, err : json.MarshalIndentbidhaa, , ikiwa makosa ! nil log.FatalfHitilafu katika kupanga JSON: v, hitilafuerr ioutil.WriteFileproducts.json, jsonData, 0644ikiwa makosa ! nil log.FatalfHitilafu katika kuandika JSON kwa faili: v, makosafmt.PrintlnUchakataji umekamilika kwa mafanikio!func scrapePagekamba ya url Bidhaa, bool res, makosa : http.Geturlikiwa makosa ! nil log.FatalfHitilafu katika kuleta URL: v, hitilafudefer res.Body.Closedoc, err : goquery.NewDocumentFromReaderres.Bodyikiwa makosa ! nil log.FatalfHitilafu katika kuchanganua HTML: v, hitilafubidhaa : Bidhaadoc.Find.bidhaa.Kilafunci int, s goquery.Selection jina : s.Find.bidhaa-jina.Textbei : s.Find.bei ya bidhaa.Textmaelezo : s.Find.maelezo ya bidhaa.Textbidhaa : BidhaaJina: jina,Bei: bei,Maelezo: maelezo,bidhaa nyongezabidhaa, bidhaahasNextPage : uongodoc.Find.pagination .next-page.Kilafunci int, s goquery.Selection if s.Text Inayofuata hasNextPage kwelibidhaa za kurudisha, hasNextPage 