Diagnozuokite Puppeteer proxy laiko limitus pagal užklausą ir puslapio etapą
Naudokite requestfailed tinklo klaidoms ir HTTPResponse būseną serverio atsakymams, prieš kaltindami proxy lėtu viso puslapio įkėlimu.
Greitas curl arba Axios atsakymas paprastai yra vienas išteklius. Puppeteer taip pat gali gauti scenarijus, vaizdus, rėmelius ir API iš kelių hostų ir laukti vėlesnio puslapio etapo.
Kadangi proxy jau sukonfigūruotas esamame puslapyje, stebėkite atskirus nepavykimus navigacijos metu:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Vykdykite tai async darbo eigoje su tikruoju targetUrl. Pavyzdys laukia DOMContentLoaded, kuris įvyksta anksčiau nei baigiamas kiekvienas reikalingas vaizdas ar vėlesnis programos atsakymas. Palyginkite šį etapą su tuo, kurio laukė pradinė navigacija: pagrindinis dokumentas, DOM, load ar tinklo tyla yra skirtingi rezultatai.
403 arba 500 atsakymas nėra requestfailed įvykis. Būseną skaitykite ir per HTTPResponse.
Pasinaudokite stebėjimais, kad nustatytumėte lėtą ar atmestą išteklių, pasikartojantį autentifikavimą ar vėlesnę laukimo sąlygą. Ilgesnis laiko limitas tik pratęsia laukimą; jis nesumažina naršyklės darbo ir neįrodo, kad kiekvienas išteklių ryšys buvo priimtas.