return语句中的
我目前正在使用Puppeter抓取网页。该网页特别包含nth-child
的div元素,我正试图对其进行迭代。如果没有for循环,我可以成功地检索div.ticker
元素的innerText
,但如果我添加一个for循环来检索多个div.ticker
元素的innerText
,那么for循环中的代码将无法执行,而是直接跳到第11行。执行时没有出现任何错误,这让我很难找到为什么我的for循环没有执行。
let scrapeData = await page.evaluate(() => {
for (let i = 1; i < 21; i++) {
let element = document.querySelector("#optionflow > div.component-body.ps.ps--theme_default.ps--active-y > div.data-body > div:nth-child(" + i + ") > div.ticker").innerText;
console.log(element);
}
return {
element
}
});
console.log("Hello world!");
await browser.close();
return scrapeData;
}
element
没有定义。您在for循环作用域中声明element
,循环结束后它将被销毁。
如果有多个元素,请使用数组和推送元素。但你真正应该做的是我们querySelectorAll
没有循环。