Diagnostikujte časové limity proxy v Puppeteeri podľa požiadavky a fázy stránky
Použite requestfailed na sieťové zlyhania a stav HTTPResponse na odpovede servera, skôr než obviníte proxy z pomalého načítania celej stránky.
Rýchla odpoveď curl alebo Axios je zvyčajne jeden zdroj. Puppeteer môže načítať aj skripty, obrázky, rámce a API z viacerých hostiteľov a čakať na neskoršiu fázu stránky.
Keďže proxy je už nastavené na existujúcej stránke, sledujte jednotlivé zlyhania počas navigácie:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Spustite to v asynchrónnom pracovnom postupe so skutočnou targetUrl. Príklad čaká na DOMContentLoaded, čo je skôr než dokončenie každého potrebného obrázka alebo neskoršej odpovede aplikácie. Porovnajte túto fázu s tou, na ktorú čakala pôvodná navigácia: hlavný dokument, DOM, load alebo sieťový pokoj sú rôzne výsledky.
Odpoveď 403 alebo 500 nie je udalosť requestfailed. Čítajte stav aj cez HTTPResponse.
Z pozorovaní určte pomalý alebo odmietnutý zdroj, opakovanú autentifikáciu alebo neskoršiu čakaciu podmienku. Dlhší časový limit iba predlžuje čakanie; neznižuje prácu prehliadača ani nedokazuje, že každé pripojenie k zdroju bolo prijaté.