如何修复' variable in loof with innerText'



这个//2 代码中的错误。评估失败: 类型错误: 无法读取未定义的属性"内部文本"。

我想在 loof 中抓取网站.tbl_column>表> tbody> tr> TD[1,2,3,4,5,6...]如何解决..?

操作系统是 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);

最新更新