Diagnosticați expirările proxy-ului Puppeteer după cerere și etapa paginii
Folosiți requestfailed pentru erori de rețea și starea HTTPResponse pentru răspunsurile serverului înainte de a da vina pe un proxy pentru o navigare lentă a întregii pagini.
Un răspuns rapid de la curl sau Axios este de obicei o singură resursă. Puppeteer poate aduce și scripturi, imagini, cadre și API-uri de la mai mulți găzduitori și poate aștepta o etapă ulterioară a paginii.
Deoarece proxy-ul este deja configurat pe pagina existentă, observați eșecurile individuale în timpul navigării:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Rulați aceasta în fluxul asincron cu targetUrl real. Exemplul așteaptă DOMContentLoaded, care apare mai devreme decât finalizarea fiecărei imagini necesare sau a unui răspuns ulterior al aplicației. Comparați acea etapă cu cea așteptată de navigarea inițială: documentul principal, DOM, load sau liniștea rețelei sunt rezultate diferite.
Un răspuns 403 sau 500 nu este un eveniment requestfailed. Citiți starea și prin HTTPResponse.
Folosiți observațiile pentru a identifica o resursă lentă sau refuzată, o autentificare repetată sau o condiție de așteptare ulterioară. Un timeout mai lung doar prelungește așteptarea; nu reduce munca browserului și nu dovedește că fiecare conexiune de resursă a fost acceptată.