在 Puppeteer page.evaluate querySelectorAll 中解析空对象返回
在 Puppeteer 中,尝试通过评估函数使用 querySelectorAll 方法检索文档元素通常会导致空对象数组。这是使用 Puppeteer 时遇到的常见问题。
要解决此问题,需要注意的是,从评估函数返回的值必须是 JSON 可序列化的。当评估复杂元素(例如提供的示例中的“title”元素)时,生成的对象包含不可序列化的值,例如函数。
解决方案在于在返回 JSON 之前从元素中提取所需的信息 -可序列化的值。在本例中,我们的目标是从元素而不是整个元素对象中提取 href 值。
通过修改评估函数,如下所示,您可以成功检索 href 值列表:
await this.page.evaluate((sel) => { let elements = Array.from(document.querySelectorAll(sel)); let links = elements.map(element => { return element.href }) return links; }, sel);
这确保了返回值是 JSON 可序列化的,并解决了结果数组中对象为空的问题。
以上是如何使用'querySelectorAll”修复 Puppeteer 的'page.evaluate”中的空对象返回?的详细内容。更多信息请关注PHP中文网其他相关文章!