首頁 > web前端 > js教程 > 為什麼 Puppeteer 的 `page.evaluate` 使用 `querySelectorAll` 回傳空物件?

為什麼 Puppeteer 的 `page.evaluate` 使用 `querySelectorAll` 回傳空物件?

DDD
發布: 2024-11-22 06:49:17
原創
694 人瀏覽過

Why does Puppeteer's `page.evaluate` return empty objects with `querySelectorAll`?

Puppeteer 評估QuerySelectorAll 傳回空白物件

當使用Puppeteer 的page.evaluate 函式透過查詢以下問題:傳回的陣列包含空物件。發生這種情況是因為 JavaScript 物件本質上不是 JSON 可序列化的。

一種潛在的解決方案是從元素中提取特定數據,確保它可以序列化為 JSON。例如,如果您對元素的href 屬性感興趣,可以如下修改程式碼:

const list = await page.evaluate((sel) => {
  let elements = Array.from(document.querySelectorAll(sel));
  let links = elements.map(element => element.href);
  return links;
}, sel);
登入後複製

此程式碼將傳回表示所選元素的href 屬性的字串數組,該數組可以輕鬆序列化和列印。

以上是為什麼 Puppeteer 的 `page.evaluate` 使用 `querySelectorAll` 回傳空物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板