Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Puppeter映射表子内容_Javascript_Puppeteer - Fatal编程技术网

Javascript 使用Puppeter映射表子内容

Javascript 使用Puppeter映射表子内容,javascript,puppeteer,Javascript,Puppeteer,我的目标是从不同的标记中获取.textContent,每个标记位于单独的中 我认为问题在于表变量,因为我没有为孩子检查正确的变量。当前,数据变量仅获取第一个,因此价格使用此代码进行计算。但是,数量和营业额没有。我认为这是一个简单的解决办法,但我就是想不出来 JavaScript: try { const tradingData = await page.evaluate(() => { let table = document.querySelector("#tradi

我的目标是从不同的
标记中获取
.textContent
,每个标记位于单独的

我认为问题在于
变量,因为我没有为孩子检查正确的变量。当前,
数据
变量仅获取第一个
,因此
价格
使用此代码进行计算。但是,
数量
营业额
没有。我认为这是一个简单的解决办法,但我就是想不出来

JavaScript:

try {
    const tradingData = await page.evaluate(() => {
      let table = document.querySelector("#trading-data tbody");
      let tableData = Array.from(table.children);
      let data = tableData.map(tradeData => {
        console.log(tradeData);
        let price = tradeData.querySelector(".quoteapi-price").textContent;
        console.log(price);
        let volume = tradeData.querySelector("quoteapi-volume").textContent;
        console.log(volume);
        let turnover = tradeData.querySelector("quoteapi-value").textContent;
        console.log(turnover);
        return { price, volume, turnover };
      })
      return data;
    });

    console.log(tradingData);
  } catch (err) {
    console.log(err);
  }
HTML:


价格
$0.105
改变
0.005
(5.00%)
卷
5,119,162
人事变更率
$540,173

例如,这应该返回
price=“$0.11”
volume=“3900558”
营业额=“$412187”
,您只需要在需要多个表或tbodies时使用
map
函数。在您的示例中,情况似乎并非如此,您可以这样做:

const tradingData=等待页面。评估(()=>{
let table=document.querySelector(“交易数据体”);
让价格=table.querySelector(“.quoteapi价格”).textContent;
让volume=table.querySelector(“.quoteapi volume”).textContent;
让营业额=table.querySelector(“.quoteapi值”).textContent;
返回{价格、数量、营业额};
});
控制台日志(tradingData);