Tableau d'objets vide inattendu renvoyé par page.evaluate querySelectorAll
Lors de l'utilisation de la fonction page.evaluate de Puppeteer avec querySelectorAll, les utilisateurs peuvent rencontrer un problème où le tableau renvoyé contient des objets vides.
Cause :
Les valeurs renvoyées par la fonction page.evaluate doivent être sérialisables en JSON. Par défaut, les éléments HTML ne sont pas sérialisables en JSON sans modifications.
Solution :
Pour résoudre ce problème, les données extraites des éléments HTML doivent être modifiées en JSON. format sérialisable. Par exemple, si les données souhaitées sont les valeurs href des éléments, l'extrait de code suivant peut être utilisé :
await this.page.evaluate((sel) => { let elements = Array.from(document.querySelectorAll(sel)); let links = elements.map(element => { return element.href; }); return links; }, sel);
Ce code extrait les valeurs href des éléments et les renvoie sous forme de tableau de chaînes, qui est sérialisable en JSON. En modifiant les valeurs renvoyées, le problème des objets vides peut être évité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!