javascript - page.evaluate() 和 document.querySelectorAll() 返回未定义或空数组
问题描述
我正在尝试使用 Puppeteer从该站点https://chat.kuki.ai/抓取网络响应。我试过使用page.$eval
and page.$$eval
。我也试过这个,https:
//www.javaer101.com/en/article/17934751.html,Puppeteer
page.evaluate querySelectorAll 返回空对象
,
https://github.com/puppeteer/puppeteer/issues/ 489 . 每次,我都会得到一个undefined
对象或空数组。我目前的代码是:
const botResponses = await page.evaluate((sel) => {
let elements = Array.from(document.querySelectorAll(sel));
let responses = elements.map(element => {
return element.innerText;
})
return responses;
}, ".pb-chat-bubble pb-chat-bubble__bot");
该代码返回一个空列表。代码中的选择器是有效的选择器,您可以在网站上查看以确认。任何帮助表示赞赏!
解决方案
您是否尝试过使用page.$$eval
const botResponses = await page.$$eval(".pb-chat-bubble pb-chat-bubble__bot",el=>el.innerText)
它用更少的代码做你在上面做的同样的事情
推荐阅读
- flutter - 如何在 Flutter 中更改 Radio 小部件的边框颜色?
- javascript - 在函数中声明 let 的问题
- regex - 使用 rexexextract 或 regexreplace 总结从一个单元格中提取的数值
- r - 尝试使用谷歌驱动器连接部署闪亮的应用程序
- r - 使用 dplyr 仅计算序列第一次出现的次数
- java - Jhipster Java Error CreateProcess error=206, The filename or extension is too long
- html - 并排放置三个图像并填充父级
- javascript - 如何在滚动图像时将文本颜色从黑色更改为白色
- ssh - github部署密钥不适用于我的网络面板用户
- git - 如何有选择地合并功能分支的一部分