如何使用 innerText 修复“loof 中的变量”

How to fix ' variable in loof with innerText'

此 //2 代码中有错误。 评估失败:TypeError:无法读取 属性 'innerText' of undefined..

我想抓取网站 .tbl_column > table > tbody > tr > td[1,2,3,4,5,6...] in loof 如何修复..?

os 是 mac

已安装人偶

//1 - was worked well 
for(var i= 0; i< 12; i++){
      var value = await page.evaluate(() => document.querySelectorAll('.tbl_column > table > tbody > tr > td')[2].innerText); 
      console.log(value);
    }



//2 -  this is error syntax "i"
for(var i= 0; i< 12; i++){
      var value = await page.evaluate(() => document.querySelectorAll('.tbl_column > table > tbody > tr > td')[i].innerText); 
      console.log(value);
    }

如果您的 document.querySelectorAll() 结果对象中的项目少于 12 个,就会出现该错误。

你的 for 循环对我来说真的没有意义。您应该从 document.querySelectorAll() 获取结果,获取结果的长度并使用基于该长度值的 for 循环。

您似乎也可以通过在对值执行 [i].innerText 之前对值执行 console.log() 来对其进行一些基本调试。

我不太了解木偶操作,但你可以试试这个:

let value = await page.evaluate(() => {
    let items = document.querySelectorAll('.tbl_column > table > tbody > tr > td');
    let results = [];
    for (let i = 0; i < items.length; i++) {
        let data = items[i].innerText;
        console.log(data);
        results.push(data);
    }
    return results;
});
console.log(value);