如何使用 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);
此 //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);