我试图用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)
当我打印文档时,它打印未定义的
发布于 2021-09-14 18:36:35
不幸的是,page.evaluate()
只能传输可序列化的值(粗略地说,就是JSON可以处理的值)。由于document
返回一个不可序列化的DOM元素(它包含方法和循环引用),因此将其替换为undefined
。您需要返回可序列化的值(例如,document.body.innerText
)或使用page.evaluateHandle()
和JSHandle
API之类的东西。
https://stackoverflow.com/questions/69181663
复制相似问题