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

Pourquoi « page.evaluate » renvoie-t-il des objets vides lors de l'utilisation de « querySelectorAll » ?

Patricia Arquette
Libérer: 2024-11-13 13:50:02
original
202 Les gens l'ont consulté

Why Does `page.evaluate` Return Empty Objects When Using `querySelectorAll`?

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

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!

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