Diagnozuj limity czasu proxy Puppeteer według żądania i etapu strony
Użyj requestfailed do błędów sieci, a statusu HTTPResponse do odpowiedzi serwera, zanim obwinisz proxy o wolne ładowanie całej strony.
Szybka odpowiedź curl lub Axios to zwykle jeden zasób. Puppeteer może też pobierać skrypty, obrazy, ramki i API z wielu hostów oraz czekać na późniejszy etap strony.
Skoro proxy jest już skonfigurowane na istniejącej stronie, obserwuj pojedyncze niepowodzenia podczas nawigacji:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Uruchom to w przepływie async z prawdziwym targetUrl. Przykład czeka na DOMContentLoaded, które występuje wcześniej niż ukończenie każdego wymaganego obrazu lub późniejszej odpowiedzi aplikacji. Porównaj ten etap z tym, na który czekała pierwotna nawigacja: dokument główny, DOM, load lub cisza sieci to różne wyniki.
Odpowiedź 403 lub 500 nie jest zdarzeniem requestfailed. Czytaj też status przez HTTPResponse.
Wykorzystaj obserwacje, aby zidentyfikować wolny lub odrzucony zasób, powtarzające się uwierzytelnianie albo późniejszy warunek oczekiwania. Dłuższy limit czasu tylko wydłuża oczekiwanie; nie zmniejsza pracy przeglądarki ani nie dowodzi, że każde połączenie z zasobem zostało przyjęte.