puppeteer page.evaluate returns 一个空对象
puppeteer page.evaluate returns an empty object
我正在尝试使用 page.evaluate
方法从网站上抓取价格元素,但当我 console.log
结果时,它总是 returns {}。这是代码:
const browser = await pptr.launch()
const page = await browser.newPage()
await page.goto("url")
const price = await page.evaluate(() => {
return document.querySelector("selector")
})
console.log(price) // returns {}
我也尝试过使用 page.$(selector)
,它 returns 一个包含 ElementHandle 的数组和一堆我不完全理解它们是什么的东西
谢谢!
您正在尝试将元素句柄从浏览器传递到您的 puppeteer 应用程序。要从浏览器 puppeteer 传输数据,请使用 JSON.stringify 并将元素句柄转换为空对象。
您可以尝试将其他内容传回您的应用程序,例如元素的文本内容。
const browser = await pptr.launch()
const page = await browser.newPage()
await page.goto("url")
const price = await page.evaluate(() => {
return document.querySelector("selector").textContent
})
console.log(price)
我正在尝试使用 page.evaluate
方法从网站上抓取价格元素,但当我 console.log
结果时,它总是 returns {}。这是代码:
const browser = await pptr.launch()
const page = await browser.newPage()
await page.goto("url")
const price = await page.evaluate(() => {
return document.querySelector("selector")
})
console.log(price) // returns {}
我也尝试过使用 page.$(selector)
,它 returns 一个包含 ElementHandle 的数组和一堆我不完全理解它们是什么的东西
谢谢!
您正在尝试将元素句柄从浏览器传递到您的 puppeteer 应用程序。要从浏览器 puppeteer 传输数据,请使用 JSON.stringify 并将元素句柄转换为空对象。
您可以尝试将其他内容传回您的应用程序,例如元素的文本内容。
const browser = await pptr.launch()
const page = await browser.newPage()
await page.goto("url")
const price = await page.evaluate(() => {
return document.querySelector("selector").textContent
})
console.log(price)