Maison > interface Web > js tutoriel > Pourquoi « page.evaluate » de Puppeteer renvoie-t-il des objets vides avec « querySelectorAll » ?

Pourquoi « page.evaluate » de Puppeteer renvoie-t-il des objets vides avec « querySelectorAll » ?

DDD
Libérer: 2024-11-22 06:49:17
original
696 Les gens l'ont consulté

Why does Puppeteer's `page.evaluate` return empty objects with `querySelectorAll`?

Puppeteer a évalué QuerySelectorAll renvoyant des objets vides

Lorsque vous utilisez la fonction page.evaluate de Puppeteer pour interroger des éléments de page avec querySelectorAll, vous pouvez rencontrer un problème où le tableau renvoyé contient des objets vides. Cela se produit parce que les objets JavaScript ne sont pas intrinsèquement sérialisables en JSON.

Une solution potentielle consiste à extraire des données spécifiques des éléments, en garantissant qu'elles peuvent être sérialisées en JSON. Par exemple, si vous êtes intéressé par l'attribut href des éléments, vous pouvez modifier votre code comme suit :

const list = await page.evaluate((sel) => {
  let elements = Array.from(document.querySelectorAll(sel));
  let links = elements.map(element => element.href);
  return links;
}, sel);
Copier après la connexion

Ce code renverra un tableau de chaînes représentant les attributs href des éléments sélectionnés, qui peut être facilement sérialisé et imprimé.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal