我是新手,正在尝试通过一些示例来了解puppeteer的实际工作原理:
所以,基本上我在这个示例中想要做的是提取YouTube视频的观看次数。我在Chrome控制台上编写了一行js代码,让我提取了这些信息:
document.querySelector('#count > yt-view-count-renderer > span.view-count.style-scope.yt-view-count-renderer').innerText
这个方法很有效。但是当我用我的pupeteer代码做同样的事情时,他无法识别我查询的元素。
const puppeteer = require('puppeteer')
const getData = async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('https://www.youtube.com/watch?v=T5GSLc-i5Xo')
await page.waitFor(1000)
const result = await page.evaluate(() => {
let views = document.querySelector('#count > yt-view-count-renderer > span.view-count.style-scope.yt-view-count-renderer').innerText
return {views}
})
browser.close()
return result
}
getData().then(value => {
console.log(value)
})
谢谢。
page.goto( 'https://www.youtube.com/watch?v=T5GSLc-i5Xo', { waitUntil: 'networkidle2', timeout: 0 });
,然后移除page.waitFor
。 - pariolalet views = ....
的原因是什么?我的意思是为什么要用let
。而且为什么返回{views}
而不只是views
?提前感谢! - RocketNuts