ホームページ > 記事 > ウェブフロントエンド > Puppeteer の `page.evaluate` が `querySelectorAll` で空のオブジェクトを返すのはなぜですか?
Puppeteer が QuerySelectorAll を評価して空のオブジェクトを返す
Puppeteer の page.evaluate 関数を使用して querySelectorAll でページ要素をクエリすると、次の問題が発生する可能性があります。返された配列には空のオブジェクトが含まれています。これは、JavaScript オブジェクトが本質的に JSON シリアル化できないために発生します。
考えられる解決策の 1 つは、要素から特定のデータを抽出し、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 中国語 Web サイトの他の関連記事を参照してください。