Estoy tratando de hacer un ejercicio de raspado web en el que se recuperan algunos valores y se almacenan en una variable de lista. Luego estoy pasando la variable de la lista como un parámetro en una función diferente. El problema con mi enfoque es que recibo un error al llamar a la función diferente. Creo que recibo este error porque no estoy pasando los elementos de la lista a la función de manera adecuada. En la función, estoy leyendo de una API de acciones de Yahoo utilizada para recuperar datos de acciones. Si tuviera que codificar un símbolo de cotización en el parámetro de la función, funciona sin ningún problema. Como estoy pasando un parámetro, recibo este error. A continuación se muestra mi código y el error que recibo. Cualquier comentario sería útil.
Código
const cheerio = require('cheerio'); const axios = require('axios'); const yahooStockPrices = require('yahoo-stock-prices'); var stockSymbol = [] async function read_fortune_500() { try { const { data } = await axios({ method: "GET", url: "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies", }) const $ = cheerio.load(data) const elemSelector = '#constituents > tbody > tr > td:nth-child(1)' $(elemSelector).each((parentIndex, parentElem) => { let keyIndex = 0 if (parentIndex <= 9){ $(parentElem).children().each((childIndex, childElem) => { const tdValue = $(childElem).text() if (tdValue) { //stockObject[keys[keyIndex]] = tdValue stockSymbol = tdValue } }) console.log(stockSymbol) } }) } catch (err) { console.error(err) } return stockSymbol; } async function collect_stocks(stockSymbol) { stockSymbol = read_fortune_500() const stockResult = await yahooStockPrices.getCurrentData(stockSymbol); console.log(stockResult); } collect_stocks(stockSymbol)Error
/node_modules/yahoo-stock-prices/yahoo-stock-prices.js:75 .split('regularMarketPrice')[1] ^ TypeError: Cannot read properties of undefined (reading 'split') at Request._callback (/node_modules/yahoo-stock-prices/yahoo-stock-prices.js:75:21) at Request.self.callback (/node_modules/request/request.js:185:22) at Request.emit (node:events:390:28) at Request.emit (node:domain:475:12) at Request.<anonymous> (/node_modules/request/request.js:1154:10) at Request.emit (node:events:390:28) at Request.emit (node:domain:475:12) at IncomingMessage.<anonymous> (/node_modules/request/request.js:1076:12) at Object.onceWrapper (node:events:509:28) at IncomingMessage.emit (node:events:402:35)El parámetro stockSymbol parece estar vacío cuando lo pasa a la función deseada, por lo tanto, cuando yahoo-stock-prices intenta aplicarle una división, falla.