Диагностицирайте изтичанията на прокси в Puppeteer по заявка и етап на страницата
Използвайте requestfailed за мрежови грешки и статуса HTTPResponse за отговорите на сървъра, преди да обвините проксито за бавно зареждане на цяла страница.
Бърз отговор от curl или Axios обикновено е един ресурс. Puppeteer може също да извлича скриптове, изображения, рамки и API от няколко хоста и да изчаква по-късен етап на страницата.
След като проксито вече е настроено на съществуващата страница, наблюдавайте отделните неуспехи по време на навигацията:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Изпълнете това в асинхронния работен поток с реалния targetUrl. Примерът изчаква DOMContentLoaded, което е по-рано от завършването на всяко нужно изображение или по-късен отговор на приложението. Сравнете този етап с този, който първоначалната навигация е чакала: основен документ, DOM, load или мрежово затишие са различни резултати.
Отговор 403 или 500 не е събитие requestfailed. Четете статуса и чрез HTTPResponse.
Използвайте наблюденията, за да откриете бавен или отказан ресурс, повторна автентикация или по-късно условие за изчакване. По-дългият таймаут само удължава изчакването; той нито намалява работата на браузъра, нито доказва, че всяка връзка с ресурс е приета.