page.evaluate querySelectorAll によって返される予期しない空のオブジェクト配列
QuerySelectorAll で Puppeteer の page.evaluate 関数を利用すると、ユーザーは次の問題に遭遇する可能性があります。返された配列には空が含まれていますobject.
原因:
page.evaluate 関数から返される値は、JSON シリアル化可能である必要があります。デフォルトでは、HTML 要素は変更を加えなければ JSON シリアル化できません。
解決策:
この問題を解決するには、HTML 要素から抽出されたデータを JSON に変更する必要があります。シリアル化可能な形式。たとえば、必要なデータが要素の href 値である場合、次のコード スニペットを使用できます。
await this.page.evaluate((sel) => { let elements = Array.from(document.querySelectorAll(sel)); let links = elements.map(element => { return element.href; }); return links; }, sel);
このコードは要素から href 値を抽出し、文字列の配列として返します。これは JSON でシリアル化可能です。戻り値を変更することで、空のオブジェクトの問題を回避できます。
以上が「querySelectorAll」を使用すると「page.evaluate」が空のオブジェクトを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。