Heim > Web-Frontend > js-Tutorial > Warum gibt „page.evaluate' von Puppeteer leere Objekte mit „querySelectorAll' zurück?

Warum gibt „page.evaluate' von Puppeteer leere Objekte mit „querySelectorAll' zurück?

DDD
Freigeben: 2024-11-22 06:49:17
Original
696 Leute haben es durchsucht

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

Puppeteer evaluierte QuerySelectorAll, die leere Objekte zurückgibt

Wenn Sie die page.evaluate-Funktion von Puppeteer verwenden, um Seitenelemente mit querySelectorAll abzufragen, kann es zu einem Problem kommen Das zurückgegebene Array enthält leere Objekte. Dies liegt daran, dass JavaScript-Objekte nicht von Natur aus JSON-serialisierbar sind.

Eine mögliche Lösung besteht darin, bestimmte Daten aus den Elementen zu extrahieren, um sicherzustellen, dass sie in JSON serialisiert werden können. Wenn Sie beispielsweise am href-Attribut von Elementen interessiert sind, können Sie Ihren Code wie folgt ändern:

const list = await page.evaluate((sel) => {
  let elements = Array.from(document.querySelectorAll(sel));
  let links = elements.map(element => element.href);
  return links;
}, sel);
Nach dem Login kopieren

Dieser Code gibt ein Array von Zeichenfolgen zurück, die die href-Attribute der ausgewählten Elemente darstellen kann einfach serialisiert und gedruckt werden.

Das obige ist der detaillierte Inhalt vonWarum gibt „page.evaluate' von Puppeteer leere Objekte mit „querySelectorAll' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage