为什么我的 Puppeteer .innerText 代码 return 什么都没有?
Why Does My Puppeteer .innerText code return nothing?
所以我刚开始学习 puppeteer.js 发生的事情是我的代码运行时没有错误,但它没有向控制台显示任何内容。 (我使用 Node.js 进行调试)唯一一次显示某些东西是当我将异步函数放在另一个函数中时,甚至它 return 未定义。我想知道这是为什么以及如何解决它。
这是我的代码:
(async () =>{
let movieUrl = 'https://www.imdb.com/title/tt0111161/?ref_=nav_sr_1'
let browser = await puppeteer.launch();
let page = await browser.newPage();
await page.goto(movieUrl, {waitUntil: 'networkidle2'})
let data = await page.evaluate(() => {
let title = document.querySelector('div[class="title_wrapper"] > h1').innerText;
let rating = document.querySelector('span[itemprop="ratingValue"]').innerText;
let ratingCount = document.querySelector('span[itemprop="ratingCount"]').innerText;
return{title, rating, ratingCount};
})
console.log(data);
debugger;
await browser.close();
})
这是一个未命名的异步函数:
async () => {
// the function code
}
如果你想直接运行它,你需要调用它。您可以通过将其括在括号中来完成:
(async () => {
// the function code
})()
这称为 IIFE,立即调用的函数表达式。您声明一个函数并立即 运行 它。
查看这些文章以了解它:
所以我刚开始学习 puppeteer.js 发生的事情是我的代码运行时没有错误,但它没有向控制台显示任何内容。 (我使用 Node.js 进行调试)唯一一次显示某些东西是当我将异步函数放在另一个函数中时,甚至它 return 未定义。我想知道这是为什么以及如何解决它。
这是我的代码:
(async () =>{
let movieUrl = 'https://www.imdb.com/title/tt0111161/?ref_=nav_sr_1'
let browser = await puppeteer.launch();
let page = await browser.newPage();
await page.goto(movieUrl, {waitUntil: 'networkidle2'})
let data = await page.evaluate(() => {
let title = document.querySelector('div[class="title_wrapper"] > h1').innerText;
let rating = document.querySelector('span[itemprop="ratingValue"]').innerText;
let ratingCount = document.querySelector('span[itemprop="ratingCount"]').innerText;
return{title, rating, ratingCount};
})
console.log(data);
debugger;
await browser.close();
})
这是一个未命名的异步函数:
async () => {
// the function code
}
如果你想直接运行它,你需要调用它。您可以通过将其括在括号中来完成:
(async () => {
// the function code
})()
这称为 IIFE,立即调用的函数表达式。您声明一个函数并立即 运行 它。
查看这些文章以了解它: