Soy nuevo en JavaScript y tengo problemas con mi programa web-scraper. Seguí un tutorial para obtener el valor de las criptomonedas de un sitio web, pero por alguna razón no puedo leer la variable "precio" fuera de mi función. Aquí está mi código
const axios = require("axios") const cheerio = require("cheerio") const{ Routes } = require("discord-api-types/v9"); const { parse } = require("dotenv"); async function getPriceFeed() { try { const siteUrl = "https://coinmarketcap.com/currencies/raptoreum/" const {data} = await axios({ method : "GET", url: siteUrl, }) const $ = cheerio.load(data) const elemSelector = "#__next > div.bywovg-1.fUzJes > div.main-content > div.sc-57oli2-0.comDeo.cmc-body-wrapper > div > div.sc-16r8icm-0.eMxKgr.container > div.n78udj-0.jskEGI > div > div.sc-16r8icm-0.kjciSH.priceSection > div.sc-16r8icm-0.kjciSH.priceTitle > div" $(elemSelector).each((parentIdx, parentElem) => { $(parentElem).children().each((childIdx, childElem) =>{ var price = $(parentElem).text(); return price; }) }) }catch(err) { console.error(err) } }; console.log(price)Gracias por tu ayuda, Vicriya
EDITAR :
Traté de declarar mi variable fuera de mi función, mi programa ya no falla pero la consola ahora me registra sin definir. En su lugar, debería registrar el precio de la criptografía.
const axios = require("axios") const cheerio = require("cheerio") const{ Routes } = require("discord-api-types/v9"); const { parse } = require("dotenv"); var price; async function getPriceFeed() { try { const siteUrl = "https://coinmarketcap.com/currencies/raptoreum/" const {data} = await axios({ method : "GET", url: siteUrl, }) const $ = cheerio.load(data) const elemSelector = "#__next > div.bywovg-1.fUzJes > div.main-content > div.sc-57oli2-0.comDeo.cmc-body-wrapper > div > div.sc-16r8icm-0.eMxKgr.container > div.n78udj-0.jskEGI > div > div.sc-16r8icm-0.kjciSH.priceSection > div.sc-16r8icm-0.kjciSH.priceTitle > div" $(elemSelector).each((parentIdx, parentElem) => { $(parentElem).children().each((childIdx, childElem) =>{ price = $(parentElem).text(); return price; }) }) }catch(err) { console.error(err) } }; console.log(price)