Μια γρήγορη απάντηση από curl ή Axios είναι συνήθως ένας πόρος. Το Puppeteer μπορεί επίσης να φέρει σενάρια, εικόνες, πλαίσια και API από πολλούς κεντρικούς υπολογιστές και να περιμένει ένα μεταγενέστερο ορόσημο σελίδας.

Με τον proxy ήδη ρυθμισμένο στην υπάρχουσα σελίδα, παρατηρήστε τις επιμέρους αποτυχίες κατά την πλοήγηση:

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.

Χρησιμοποιήστε τις παρατηρήσεις για να εντοπίσετε έναν αργό ή απορριφθέντα πόρο, επαναλαμβανόμενη ταυτοποίηση ή μεταγενέστερη συνθήκη αναμονής. Ένα μεγαλύτερο όριο χρόνου απλώς παρατείνει την αναμονή· δεν μειώνει την εργασία του προγράμματος περιήγησης ούτε αποδεικνύει ότι κάθε σύνδεση πόρου έγινε δεκτή.

Σχετικά άρθρα