gpt4 book ai didi

javascript - Puppeteer page.evaluate querySelectorAll 返回空对象

转载 作者:IT老高 更新时间:2023-10-28 23:23:15 24 4
gpt4 key购买 nike

我正在尝试 Puppeteer。这是您可以运行的示例代码:https://try-puppeteer.appspot.com/

问题是这段代码返回一个空对象数组:

[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]

我是不是搞错了?

const browser = await puppeteer.launch();

const page = await browser.newPage();
await page.goto('https://reddit.com/');

let list = await page.evaluate(() => {
return Promise.resolve(Array.from(document.querySelectorAll('.title')));
});

console.log(JSON.stringify(list))

await browser.close();

最佳答案

evaluate 函数返回的值应该是 json 可序列化的。 https://github.com/GoogleChrome/puppeteer/issues/303#issuecomment-322919968

解决方案是从元素中提取 href 值并返回。

 await this.page.evaluate((sel) => {
let elements = Array.from(document.querySelectorAll(sel));
let links = elements.map(element => {
return element.href
})
return links;
}, sel);

关于javascript - Puppeteer page.evaluate querySelectorAll 返回空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46377955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com