我试图从名为 NSE 的网站抓取数据,所以首先我尝试在检查元素控制台中执行此操作:
objs = $('div[class="table-wrap"] > table > tbody > tr > td').slice(0, 8)
objs.map((i,element) => console.log($(element).text()))
我得到输出:
401.20
417.00
-
411.45
361.10
441.30
No Band
-
所以我很高兴,因为我得到了我想要的东西。 但是当我去我的 vscode 并试图为它制作一个脚本时,我猜相同的代码返回了一些随机值。下面是代码:
const cheerio = require("cheerio")
const axios = require("axios")
const url = "https://www.nseindia.com/get-quotes/equity?symbol=SBIN";
async function getDataFromNse() {
const { data } = await axios.get(url)
let $ = cheerio.load(data)
const objectArray = $('div[class="table-wrap"] > table > tbody > tr > td').slice(0, 8)
objectArray.map((i,element) => console.log($(element).text()))
}
getDataFromNse()
我得到输出:
Indicative Equilibrium Price (In )
-
Indicative Equilibrium Quantity
-
Final Price (In )
-
Final Quantity
-
我不知道检查器中的这些值在哪里。 在控制台中,我得到了正确的数值。 如果有人可以提供帮助,我将不胜感激! 提前致谢。
答案 0 :(得分:0)
innerText 是一个 DOM 节点属性,所以浏览器有这些而节点没有。
要获取cheerio节点的文本,请使用:
$(element).text()