Diagnosis waktu tunggu proxy Puppeteer per permintaan dan tonggak halaman
Gunakan requestfailed untuk kegagalan jaringan dan status HTTPResponse untuk respons server sebelum menyalahkan proxy atas navigasi halaman penuh yang lambat.
Respons curl atau Axios yang cepat biasanya hanya satu sumber daya. Puppeteer juga dapat mengambil skrip, gambar, frame, dan API dari beberapa host, lalu menunggu tonggak halaman yang lebih akhir.
Karena proxy sudah dikonfigurasi pada halaman yang ada, amati kegagalan individual selama navigasi:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Jalankan ini dalam alur kerja async dengan targetUrl yang sebenarnya. Contoh menunggu DOMContentLoaded, yang terjadi lebih awal daripada selesainya setiap gambar yang dibutuhkan atau respons aplikasi yang lebih akhir. Bandingkan tonggak itu dengan tonggak yang ditunggu navigasi asli: dokumen utama, DOM, load, atau diamnya jaringan adalah hasil yang berbeda.
Respons 403 atau 500 bukan peristiwa requestfailed. Baca status melalui HTTPResponse juga.
Gunakan pengamatan untuk mengidentifikasi sumber daya yang lambat atau ditolak, autentikasi berulang, atau kondisi tunggu yang lebih akhir. Waktu tunggu yang lebih panjang hanya memperpanjang penantian; itu tidak mengurangi kerja browser dan tidak membuktikan bahwa setiap koneksi sumber daya diterima.