Heim >Web-Frontend >js-Tutorial >Wie behebe ich die Rückgabe leerer Objekte in „page.evaluate' von Puppeteer mit „querySelectorAll'?
Auflösen leerer Objektrückgaben in Puppeteer page.evaluate querySelectorAll
In Puppeteer wird versucht, Dokumentelemente mithilfe der Methode querySelectorAll über die Funktion „evaluieren“ abzurufen führt oft zu einem Array leerer Objekte. Dies ist ein häufiges Problem, das bei der Arbeit mit Puppeteer auftritt.
Um dieses Problem zu beheben, ist es wichtig zu beachten, dass die von der Auswertungsfunktion zurückgegebenen Werte JSON-serialisierbar sein müssen. Bei der Auswertung komplexer Elemente wie dem „title“-Element im bereitgestellten Beispiel enthalten die resultierenden Objekte nicht serialisierbare Werte, wie z. B. Funktionen.
Die Lösung besteht darin, die gewünschten Informationen aus den Elementen zu extrahieren, bevor das JSON-Element zurückgegeben wird. serialisierbare Werte. In diesem Fall wollen wir die href-Werte aus den Elementen extrahieren und nicht aus den gesamten Elementobjekten.
Durch Ändern der Auswertungsfunktion wie unten gezeigt können Sie erfolgreich eine Liste von href-Werten abrufen:
await this.page.evaluate((sel) => { let elements = Array.from(document.querySelectorAll(sel)); let links = elements.map(element => { return element.href }) return links; }, sel);
Dadurch wird sichergestellt, dass die zurückgegebenen Werte JSON-serialisierbar sind, und das Problem leerer Objekte im Ergebnisarray wird behoben.
Das obige ist der detaillierte Inhalt vonWie behebe ich die Rückgabe leerer Objekte in „page.evaluate' von Puppeteer mit „querySelectorAll'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!