为什么我的 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,立即调用的函数表达式。您声明一个函数并立即 运行 它。

查看这些文章以了解它: