Résolution des retours d'objets vides dans la page Puppeteer.evaluate querySelectorAll
Dans Puppeteer, tentative de récupération d'éléments de document à l'aide de la méthode querySelectorAll via la fonction d'évaluation conduit souvent à un tableau d’objets vides. Il s'agit d'un problème courant rencontré lors de l'utilisation de Puppeteer.
Pour résoudre ce problème, il est important de noter que les valeurs renvoyées par la fonction d'évaluation doivent être sérialisables en JSON. Lors de l'évaluation d'éléments complexes comme l'élément 'title' dans l'exemple fourni, les objets résultants contiennent des valeurs non sérialisables, telles que des fonctions.
La solution réside dans l'extraction des informations souhaitées des éléments avant de renvoyer le JSON- valeurs sérialisables. Dans ce cas, nous visons à extraire les valeurs href des éléments au lieu des objets éléments entiers.
En modifiant la fonction d'évaluation comme indiqué ci-dessous, vous pouvez récupérer avec succès une liste de valeurs href :
await this.page.evaluate((sel) => { let elements = Array.from(document.querySelectorAll(sel)); let links = elements.map(element => { return element.href }) return links; }, sel);
Cela garantit que les valeurs renvoyées sont sérialisables en JSON et résout le problème des objets vides dans le tableau de résultats.
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!