这个//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);