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ă.

Articole similare