javascript - 未处理的PromiseRejection警告: ReferenceError: browser is not defined when running puppeteer?

标签 javascript node.js google-chrome-devtools puppeteer headless-browser

我是使用 puppeteer 的新手,我想抓取某个网站的一些数据,但我收到这些警告,并且控制台上没有显示任何数据。

为什么我会收到以下警告,如何消除它们?

这是我使用的代码:

const puppeteer = require("puppeteer");

(async () => {
  // prepare for headless chrome
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // set user agent (override the default headless User Agent)
  await page.setUserAgent(
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
  );

  // go to website home page
  await page.goto("https://www.nytimes.com/");
  await page.waitForSelector("body");
  // get the User Agent on the context of Puppeteer
  const userAgent = await page.evaluate(() => navigator.userAgent);
  var rposts = await page.evaluate(() => {
    postItems = [];
    let posts = document.body.querySelectorAll(".assetWrapper");
    posts.forEach((item) => {
      try {
        title = item.querySelector("h2").innerText;
        link = item.querySelector("a").href;
        summary = item.querySelector("p").innerText;
        postItems.push({ title: title, link: link, summary: summary });
      } catch (e) {}
    });
    var items = {
      posts: postItems,
    };
    return items;
  });
  // If everything correct then no 'HeadlessChrome' sub string on userAgent
  console.log(userAgent);
  console.log(rposts);
  await browser.close();
})();

以下是出现的错误: ( Node :4072)UnhandledPromiseRejectionWarning:ReferenceError:浏览器未定义 ( Node :15452)UnhandledPromiseRejectionWarning:ReferenceError:初始化前无法访问“页面”

最佳答案

创建 headless 浏览器,然后您就可以使用这些代码。

    const browser = await puppeteer.launch({
        headless: false
    });

问候,

关于javascript - 未处理的PromiseRejection警告: ReferenceError: browser is not defined when running puppeteer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61624926/

相关文章:

javascript - claimBarcodeScanner.SetActiveSymbologiesAsync 的 JavaScript 实现是否有效?

node.js - 使用 Node 查询 GraphQL API

eclipse - 如何设置nodejs Debug模式不听127.0.0.1

javascript - 用javascript让div出现或消失

javascript - 在异步模式下使用时,redis createClient 上的 Google 云函数错误

javascript - Process.nextTick 和 Promise 回调

javascript - 如何将变量传递给 Puppeteer page.on?

javascript - JS source map文件什么时候下载到客户端?

javascript - 使用 javascript 在 mySQL 查询后填充表单

node.js - 如何获取 Mongoose 数组中最后一个元素的数据?