【问题标题】:page.evaluate() - document is not definedpage.evaluate() - 未定义文档
【发布时间】:2021-09-15 02:36:35
【问题描述】:

我尝试使用 Puppetter 获取网站的文档,但不知何故 page.evaluate 并没有按照我想象的方式工作。

  let browser = await puppeteer.launch({headless:true});
  let page = await browser.newPage();
  await page.setViewport({
    width: 1920,
    height: 1080
  })
  await page.goto('https://www.tradingview.com/chart/');

  const doc = await page.evaluate(() => {
    return document;
  });
  
  console.log(doc) 

当我打印 doc 时,它会打印 undefined

【问题讨论】:

    标签: javascript node.js puppeteer chromium


    【解决方案1】:

    不幸的是,page.evaluate() 只能传输可序列化的值(大致是 JSON 可以处理的值)。由于document 返回一个不可序列化的DOM 元素(它包含方法和循环引用),它被undefined 替换。您需要返回可序列化的值(例如,document.body.innerText)或使用类似page.evaluateHandle()JSHandle API 的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2016-05-06
      • 2020-10-26
      • 2015-11-14
      相关资源
      最近更新 更多