Puppeteer-Proxy-Timeouts nach Request und Seiten-Meilenstein diagnostizieren
Verwenden Sie requestfailed für Netzwerkfehler und den HTTPResponse-Status für Serverantworten, bevor Sie einen Proxy für eine langsame Navigation über die ganze Seite verantwortlich machen.
Eine schnelle Antwort von curl oder Axios ist meist eine einzelne Ressource. Puppeteer lädt zusätzlich Skripte, Bilder, Frames und APIs von mehreren Hosts und wartet auf einen späteren Seiten-Meilenstein.
Da der Proxy bereits auf der vorhandenen Seite konfiguriert ist, beobachten Sie einzelne Fehlschläge während der Navigation:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Führen Sie dies im asynchronen Ablauf mit der echten targetUrl aus. Das Beispiel wartet auf DOMContentLoaded, was früher eintritt als der Abschluss jedes benötigten Bildes oder einer späteren Anwendungsantwort. Vergleichen Sie diesen Meilenstein mit dem, auf den die ursprüngliche Navigation gewartet hat: Hauptdokument, DOM, load oder Netzwerkruhe sind unterschiedliche Ergebnisse.
Eine Antwort mit 403 oder 500 ist kein requestfailed-Ereignis. Lesen Sie den Status auch über HTTPResponse.
Nutzen Sie die Beobachtungen, um eine langsame oder abgelehnte Ressource, wiederholte Authentifizierung oder eine spätere Wartebedingung zu erkennen. Ein längerer Timeout verlängert nur das Warten; er verringert weder die Arbeit des Browsers noch belegt er, dass jede Ressourcenverbindung angenommen wurde.