Maison > interface Web > js tutoriel > le corps du texte

Comment corriger les retours d'objets vides dans « page.evaluate » de Puppeteer avec « querySelectorAll » ?

Barbara Streisand
Libérer: 2024-11-18 09:31:02
original
261 Les gens l'ont consulté

How to Fix Empty Object Returns in Puppeteer's `page.evaluate` with `querySelectorAll`?

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal