UnhandledPromiseRejectionWarning: ReferenceError: браузер не определяется при запуске кукловода? - PullRequest
1 голос
/ 06 мая 2020

Я новичок в использовании кукловода, и я хочу очистить некоторые данные определенного веб-сайта, но получаю эти предупреждения, и данные не отображаются на консоли.

Почему я получаю следующие предупреждения и как могу ли я избавиться от них?

Вот код, который я использовал:

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();
})();

вот ошибки, которые я получаю: (узел: 4072) UnhandledPromiseRejectionWarning: ReferenceError: браузер не определен ( узел: 15452) UnhandledPromiseRejectionWarning: ReferenceError: невозможно получить доступ к «странице» перед инициализацией

1 Ответ

4 голосов
/ 06 мая 2020

Создайте браузер с Headless, тогда вы сможете работать с этим кодом.

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

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...