Ախտորոշեք 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,
});Գործարկեք սա async աշխատահոսքում իրական targetUrl-ով։ Օրինակը սպասում է DOMContentLoaded-ին, ինչը տեղի է ունենում ավելի վաղ, քան յուրաքանչյուր պահանջվող պատկերի կամ ավելի ուշ հավելվածի պատասխանի ավարտը։ Համեմատեք այդ նշագիծը այն նշագծի հետ, որին սպասում էր սկզբնական նավարկությունը՝ հիմնական փաստաթուղթը, DOM-ը, load-ը կամ ցանցի լռությունը տարբեր արդյունքներ են։
403 կամ 500 պատասխանը requestfailed իրադարձություն չէ։ Կարդացեք կարգավիճակը նաև HTTPResponse-ի միջոցով։
Օգտագործեք դիտարկումները՝ դանդաղ կամ մերժված ռեսուրսը, կրկնվող նույնականացումը կամ ավելի ուշ սպասման պայմանը բացահայտելու համար։ Ավելի երկար ժամանակավոր սահմանաչափը միայն երկարացնում է սպասումը․ այն չի նվազեցնում զննարկիչի աշխատանքը և չի ապացուցում, որ յուրաքանչյուր ռեսուրսային միացում ընդունվել է։