Great Learning Guide of Puppeteer Browser Class (Tutorial 8)

Το Puppeteer είναι μια βιβλιοθήκη κόμβου js ανοιχτού κώδικα και χρησιμοποιείται ως εργαλείο αυτοματισμού ιστού καθώς και εργαλείο απόξεσης ιστού. Χρειάζεστε τη βασική κατανόηση της Javascript και της δομής HTML DOM για να ξεκινήσετε να εργάζεστε με το Puppeteer. Αυτή η σειρά μαθημάτων Puppeteer διανέμεται στα παρακάτω τμήματα που θα σας εξοπλίσουν με όλη την απαραίτητη εμπειρία για να ξεκινήσετε να εργάζεστε με το Puppeteer. 

Εκπαιδευτικό κουκλοθέατρο

Εκμάθηση Tosca # 1: Επισκόπηση Puppeteer

Εκμάθηση Tosca # 2: Μεταβλητές Περιβάλλοντος Puppeteer

Εκμάθηση Tosca # 3: Επισκόπηση αυτοματισμού Puppeteer Web Scraping και Puppeteer Test

Εκμάθηση Tosca # 4: Εγκαταστήστε το Puppeteer

Εκμάθηση Tosca # 5: Δείγμα έργου Puppeteer

Εκμάθηση Tosca # 6: Δοκιμή Αυτοματισμού Κουκλοθεάτρου

Εκμάθηση Tosca # 7: Μάθημα κουκλοθεάτρου

Εκμάθηση Tosca # 8: Κατηγορία προγράμματος περιήγησης Puppeteer

Τόσκα φροντιστήριο #9: Κατηγορία σελίδας κουκλοθέατρου

Σε αυτό το σεμινάριο «Puppeteer Browser Class», θα έχουμε σε βάθος κατανόηση περαιτέρω για τις παρακάτω αναφερόμενες τάξεις, οι οποίες αποτελούνται από τους σημαντικούς χώρους ονομάτων, τις εκδηλώσεις και άλλες εξαντλητικές μεθόδους που απαιτούνται για να συνεργαστούν με τις τεχνικές απόξεσης ιστού Puppeteer.  

Κουτάβι Πρόγραμμα BrowserFetcher

Το Puppeteer BrowserFetcher Class χρησιμοποιείται για τη λήψη και τη διαχείριση των διαφορετικών εκδόσεων του προγράμματος περιήγησης. Η κλάση BrowserFetcher λειτουργεί σε μια συμβολοσειρά αναθεώρησης που καθορίζει την έκδοση του προγράμματος περιήγησης chrome. Ο αριθμός αναθεώρησης μπορεί να ληφθεί από εδώ. Στην περίπτωση του Firefox, πραγματοποιεί λήψη του προγράμματος περιήγησης κάθε βράδυ με βάση τον αριθμό έκδοσης.

Το παρακάτω παράδειγμα δείχνει πώς να κατεβάσετε και εκκινήστε το πρόγραμμα περιήγησης chrome χρησιμοποιώντας την κλάση BrowserFetcher.

const browserFetcher = puppeteer.createBrowserFetcher(); const revInfo = await browserFetcher.download('766890'); const browserChrome= αναμονή puppeteer.launch({executablePath: revInfo.executablePath})

Δεν είναι δυνατή η ταυτόχρονη εργασία με άλλη παρουσία της κλάσης BrowserFetcher. Οι μέθοδοι της κλάσης BrowserFetcher που χρησιμοποιούνται συχνά εξηγούνται στις επόμενες ενότητες.

Κουτάβι BrowserFetcher Class - Μέθοδοι:

Οι παρακάτω μέθοδοι είναι διαθέσιμες στην τάξη προγράμματος περιήγησης puppeteer browser,

browserFetcher.canDownload (αναθεώρηση) - Με τη βοήθεια του αριθμού αναθεώρησης του προγράμματος περιήγησης, αυτή η μέθοδος ελέγχει τη διαθεσιμότητα του καθορισμένου προγράμματος περιήγησης ως μέρος του αιτήματος κεφαλίδας. Η μέθοδος επιστρέφει τη δυαδική τιμή (true ή false) με βάση τη διαθεσιμότητα.

const boolVar = browserFetcher.canDownload ('766890');

browserFetcher.download (αναθεώρηση [, progressCallback]) - Αυτή η μέθοδος κατεβάζει το πρόγραμμα περιήγησης chrome χρησιμοποιώντας το όρισμα αριθμού αναθεώρησης. Εδώ το progressCallback είναι ένα προαιρετικό όρισμα που καλεί τη συνάρτηση με δύο ορίσματα - λήψη bytes και συνολικά byte. Αυτή η μέθοδος επιστρέφει τις πληροφορίες αναθεώρησης ως αντικείμενο υπόσχεσης.

const revInfo = browserFetcher.download ('766890');

browserFetcher.host () - Επιστρέφει το όνομα κεντρικού υπολογιστή, το οποίο χρησιμοποιείται για τη λήψη του προγράμματος περιήγησης.

const hostName = browserFetcher.host ();

browserFetcher.localRevisions () - Επιστρέφει τη λίστα όλων των αναθεωρήσεων που είναι διαθέσιμες στο τοπικό σύστημα.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Επιστρέφει το όνομα της πλατφόρμας του κεντρικού υπολογιστή, το οποίο θα είναι οποιοδήποτε από τα mac, Linux, win32 ή win64.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Επιστρέφει το όνομα του προγράμματος περιήγησης που θα είναι είτε chrome είτε firefox

const productName = browserFetcher.product ();

browserFetcher.remove (αναθεώρηση) - Αυτή η μέθοδος χρησιμοποιείται για την κατάργηση της καθορισμένης αναθεώρησης για το τρέχον προϊόν / πρόγραμμα περιήγησης. Επιστρέφει το αντικείμενο υπόσχεσης, το οποίο επιλύεται μετά την ολοκλήρωση της διαδικασίας.

const revInfo = browserFetcher.remove ('766890');

browserFetcher.revisionInfo (αναθεώρηση) - Θα επιστρέψει ένα αντικείμενο σε πληροφορίες αναθεώρησης που περιλαμβάνει αναθεώρηση, folderPath, executablePath, url, local και προϊόν.

const revInfo = browserFetcher.revisionInfo ('766890');

Παραπομπή: Πατήστε εδώ για να μάθετε περισσότερα σχετικά με τις μεθόδους BrowserFetcher Class.

Κουτάβι Κατηγορία προγράμματος περιήγησης

Η κλάση Puppeteer Browser δημιουργείται όταν ο puppeteer ξεκίνησε ή συνδέει το πρόγραμμα περιήγησης χρησιμοποιώντας κουκλοπαίχτης.έναρξη or κουκλοπαίχτης.σύνδεση μεθόδους.

Το παρακάτω παράδειγμα δείχνει τον τρόπο δημιουργίας της κλάσης και της σελίδας του προγράμματος περιήγησης χρησιμοποιώντας την αναφορά του προγράμματος περιήγησης.

const puppeteer = απαιτώ('κουκλοπαίκτης'); (async () => { const browserChrome = await puppeteer.launch(); const pageChrome = await browserChrome.newPage(); await pageChrome.goto('https://www.google.com'); await browserChrome.close( ); })();

Τα συχνά χρησιμοποιούμενα συμβάντα και μέθοδοι της κατηγορίας προγράμματος περιήγησης εξηγούνται στην επόμενη ενότητα.

Κουτάβι Κατηγορία προγράμματος περιήγησης - Εκδηλώσεις:

Τα παρακάτω συμβάντα είναι διαθέσιμα στην κατηγορία του προγράμματος περιήγησης,

  • browser.on («αποσυνδεδεμένο») - Αυτό το συμβάν ενεργοποιείται όταν το πρόγραμμα περιήγησης είναι κλειστό / καταρρέει ή browser.αποσύνδεση καλείται μέθοδος.
  • browser.on («targetchanged») - Αυτό το συμβάν ενεργοποιείται όταν έχει αλλάξει η διεύθυνση URL του στόχου.
  • browser.on («targetcreated») - Αυτό το συμβάν ενεργοποιείται όταν η νέα σελίδα ανοίγει σε νέα καρτέλα ή παράθυρο με τη μέθοδο browser.newPage or παράθυρο.ανοιχτό.
  • browser.on («targetdestroyed») - Αυτό το συμβάν ενεργοποιείται όταν ο στόχος καταστραφεί, δηλαδή, η σελίδα είναι κλειστή.

Κουτάβι Κλάση προγράμματος περιήγησης - Μέθοδοι:

Οι παρακάτω μέθοδοι είναι διαθέσιμες στην κατηγορία προγράμματος περιήγησης,

  • browser.browserContexts () - Επιστρέφει τη λίστα με όλα τα περιβάλλοντα του προγράμματος περιήγησης. Για ένα πρόγραμμα περιήγησης που κυκλοφόρησε πρόσφατα, αυτή η μέθοδος θα επιστρέψει τη μοναδική παρουσία του BrowserContext.
  • browser.close () - Αυτή η μέθοδος χρησιμοποιείται για το κλείσιμο όλων των ανοιχτών σελίδων του προγράμματος περιήγησης χρωμίου. 

περιμένετε browser.close ();

  • browser.createIncognitoBrowserContext () - Δημιουργεί / επιστρέφει το περιβάλλον ανώνυμης περιήγησης, το οποίο δεν θα κοινοποιεί ποτέ τα cookie ή την προσωρινή μνήμη με άλλα περιβάλλοντα προγράμματος περιήγησης. Στο παρακάτω παράδειγμα, η ιστοσελίδα (google) θα ανοίξει σε κατάσταση ανώνυμης περιήγησης.

(async () => {
  const chromeBrowser = περιμένετε puppeteer.launch ();
  // Δημιουργία νέου περιβάλλοντος προγράμματος περιήγησης ανώνυμης περιήγησης.
  const konteks = αναμονή chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = αναμονή konteks.newPage ();
  περιμένετε σελίδαChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Επιστρέφει το προεπιλεγμένο περιβάλλον του προγράμματος περιήγησης που δεν μπορεί να καταστραφεί ή να κλείσει.
  • browser.disconnect () - Θα αποσυνδέσει το πρόγραμμα περιήγησης από το puppeteer. Όμως, το πρόγραμμα περιήγησης θα συνεχίσει να λειτουργεί σε αυτήν την περίπτωση.
  • browser.isConnected () - Αυτή η μέθοδος ελέγχει εάν το πρόγραμμα περιήγησης είναι συνδεδεμένο ή όχι. Θα επιστρέψει δυαδικές τιμές με βάση τον έλεγχο.

const boolFlag = αναμονή browser.isConnected ();

  • browser.newPage () - Αυτή η μέθοδος θα δημιουργήσει μια νέα σελίδα και θα επιστρέψει την παρουσία της σελίδας.

const page = αναμονή browser.newPage ();

  • browser.pages () - Αυτή η μέθοδος επιστρέφει τη λίστα όλων των σελίδων που βρίσκονται αυτήν τη στιγμή σε ανοιχτή κατάσταση.

const pageList = αναμονή browser.pages ();

  • browser.process () - Αυτή η μέθοδος επιστρέφει τη διαδικασία του προγράμματος περιήγησης που δημιουργήθηκε. Εάν το πρόγραμμα περιήγησης δημιουργείται χρησιμοποιώντας browser.σύνδεση μέθοδος και θα επιστρέψει μια μηδενική τιμή.
  • browser.target () - Αυτή η μέθοδος επιστρέφει τον στόχο που σχετίζεται με το πρόγραμμα περιήγησης.

const target = αναμονή browser.target ();

  • browser.targets () - Επιστρέφει τη λίστα όλων των ενεργών στόχων στο πρόγραμμα περιήγησης.

const targetList = αναμονή browser.targets ();

  • browser.userAgent () - Επιστρέφει το αντικείμενο υπόσχεσης σχετικά με τον αρχικό πράκτορα του προγράμματος περιήγησης.
  • browser.version () - Επιστρέφει την έκδοση του προγράμματος περιήγησης με τη μορφή «HeadlessChrome / xx.x.xxxx.x "για χρώμιο χωρίς κεφαλή και" Chrome / xx.x.xxxx.x 'για χρώμιο χωρίς κεφαλή. Η μορφή μπορεί να αλλάξει σε μελλοντική έκδοση.
  • browser.waitForTarget (predicate [, επιλογές]) - Θα κάνει αναζήτηση σε όλα τα περιβάλλοντα του προγράμματος περιήγησης και θα περιμένει τον στόχο.

περιμένετε pageChrome.evaluate (() => window.open ('https://lambdageeks.com/'));
const newWindowTarget = αναμονή browser.waitForTarget (target => target.url () === 'https://lambdageeks.com/');

  • browser.wsEndpoint () - Επιστρέφει τη διεύθυνση URL της υποδοχής ιστού του προγράμματος περιήγησης.

const wsUrl = αναμονή browser.wsEndPoint ();

Παραπομπή: Πατήστε εδώ για να μάθετε περισσότερα σχετικά με τις εκδηλώσεις και τις μεθόδους της κατηγορίας προγράμματος περιήγησης.

Κουτάβι Τάξη προγράμματος περιήγησης

Η κλάση BrowserContext βοηθά στη λειτουργία πολλαπλών παρουσιών προγράμματος περιήγησης. Μετά την εκκίνηση μιας παρουσίας προγράμματος περιήγησης, από προεπιλογή, χρησιμοποιείται ένα μόνο BrowserContext. ο πρόγραμμα περιήγησης Chrome.ΝΕΑ ΣΕΛΙΔΑ() Η μέθοδος δημιουργεί μια σελίδα στο προεπιλεγμένο αντικείμενο κλάσης BrowserContext. Εάν μια ιστοσελίδα επικαλεστεί μια άλλη σελίδα, τότε η νέα σελίδα πρέπει να ανήκει στο πλαίσιο περιήγησης της γονικής σελίδας. Εδώ, η νέα σελίδα μπορεί να δημιουργηθεί χρησιμοποιώντας ο window.open () μέθοδος. 

Στο παρακάτω παράδειγμα, το Puppeteer έχει τη δυνατότητα να δημιουργήσει ένα περιβάλλον προγράμματος περιήγησης σε κατάσταση ανώνυμης περιήγησης. Το περιβάλλον του προγράμματος περιήγησης "ανώνυμης περιήγησης" δεν γράφει δεδομένα στον χώρο αποθήκευσης.

// Ανώνυμη δημιουργία περιβάλλοντος προγράμματος περιήγησης const contextIncognito = αναμονή του προγράμματος περιήγησηςChrome.createIncognitoBrowserContext(); // Δημιουργία νέας σελίδας μέσω του περιβάλλοντος του προγράμματος περιήγησης. const pageChrome = await contextIncognito.newPage(); αναμονή pageChrome.goto('https://www.google.com'); //κλείσιμο περιβάλλοντος μετά τη χρήση αναμένει το contextIncognito.close();

Τα συμβάντα και οι μέθοδοι της κλάσης BrowserContext που χρησιμοποιούνται συχνά εξηγούνται στην επόμενη ενότητα.

Κουτάβι Πρόγραμμα Περιήγησης Περιεχομένου - Εκδηλώσεις:

Οι παρακάτω εκδηλώσεις είναι διαθέσιμες στην κλάση browsercontext,

  • browserContext.on (στόχος άλλαξε) - Αυτό το συμβάν ενεργοποιείται όταν έχει αλλάξει η διεύθυνση URL του στόχου στο πλαίσιο του προγράμματος περιήγησης.
  • browserContext.on (δημιουργήθηκε στόχος) - Αυτό το συμβάν ενεργοποιείται μετά τη δημιουργία του περιβάλλοντος του προγράμματος περιήγησης. Οι μέθοδοι παράθυρο.ανοιχτό και  browserContext.newPage είναι υπεύθυνοι για αυτήν την εκδήλωση.
  • browserContext.on ('targetdestroyed') - Αυτό το συμβάν ενεργοποιείται όταν ο στόχος καταστραφεί εντός του περιβάλλοντος του προγράμματος περιήγησης.

Κουτάβι Πρόγραμμα Περιήγησης Περιεχομένου - Μέθοδοι:

Οι παρακάτω μέθοδοι είναι διαθέσιμες στην κλάση περιήγησης κειμένου,

  • browserContext.browser () - Αυτή η μέθοδος επιστρέφει το αντικείμενο του προγράμματος περιήγησης που είναι διαθέσιμο στο πλαίσιο του προγράμματος περιήγησης.
  • browserContext.clearPermissionOverrides () - Αυτή η μέθοδος καταργεί όλες τις παρακάμψεις δικαιωμάτων από το περιβάλλον του προγράμματος περιήγησης. Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε αυτήν τη μέθοδο - 

const browserContext = browser.defaultBrowserContext ();
browserContext.overridePermissions ('https://www.google.com', ['πρόχειρο-ανάγνωση']);
browserContext.clearPermissionOverrides ();

  • browserContext.close () - Αυτή η μέθοδος χρησιμοποιείται για το κλείσιμο ή την καταστροφή του περιβάλλοντος του προγράμματος περιήγησης. Όλα τα προγράμματα περιήγησης που είναι διαθέσιμα στο πλαίσιο του προγράμματος περιήγησης θα είναι κλειστά.

browserContext.close ();

  • browserContext.isIncognito () - Αυτή η μέθοδος χρησιμοποιείται για να ελέγξει αν το πρόγραμμα περιήγησης έχει δημιουργηθεί σε κατάσταση ανώνυμης περιήγησης ή όχι. Επιστρέφει μια δυαδική τιμή (true - κατάσταση ανώνυμης περιήγησης ή false - λειτουργία ανώνυμης περιήγησης) με βάση τη λειτουργία του προγράμματος περιήγησης. Από προεπιλογή, οποιοδήποτε πρόγραμμα περιήγησης καλείται σε κατάσταση «ανώνυμης περιήγησης».

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Αυτή η μέθοδος χρησιμοποιείται για τη δημιουργία μιας νέας σελίδας στο ίδιο κείμενο περιήγησης.

browserContext.newPage ();

  • browserContext.overridePermissions (προέλευση, άδεια) - Αυτή η μέθοδος χρησιμοποιείται για τη χορήγηση της καθορισμένης άδειας για την προέλευση, δηλαδή, τη διεύθυνση URL προορισμού. Τα διαφορετικά δικαιώματα που είναι διαθέσιμα για εκχώρηση είναι -
  • "γεωγραφική τοποθεσία"
  • «midi-sysex» (αποκλειστικό σύστημα midi)
  • «midi»
  • 'Σπρώξτε'
  • 'ΦΩΤΟΓΡΑΦΙΚΗ ΜΗΧΑΝΗ'
  • "ειδοποιήσεις"
  • 'μικρόφωνο'
  • 'Αισθητήρας φωτισμού περιβάλλοντος'
  • "επιταχυνσιόμετρο"
  • "φόντο-συγχρονισμός"
  • 'γυροσκόπιο'
  • «προσβασιμότητα-εκδηλώσεις»
  • «πρόχειρο-ανάγνωση»
  • «μαγνητόμετρο»
  • «πρόχειρο-εγγραφή»
  • «χειριστής πληρωμών»

Το παρακάτω παράδειγμα δείχνει πώς να παραχωρήσετε άδεια -

const browserContext = browser.defaultBrowserContext ();
περιμένετε browserContext.overridePermissions ('https://www.google.com', ['geolocation']);

  • browserContext.pages () - Αυτή η μέθοδος επιστρέφει τη λίστα όλων των ανοιχτών σελίδων που είναι διαθέσιμες στο περιβάλλον του προγράμματος περιήγησης. Οποιαδήποτε μη ορατή σελίδα δεν θα αναφέρεται εδώ.

const openPageList = browserContext.pages ();

  • browserContext.targets () - Αυτή η μέθοδος επιστρέφει τη λίστα όλων των ενεργών στόχων που διατίθενται στο περιβάλλον του προγράμματος περιήγησης. Οποιαδήποτε μη ορατή σελίδα δεν θα αναφέρεται εδώ.

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget (predicate [, επιλογές]) - Αυτή η μέθοδος χρησιμοποιείται για να περιμένει να εμφανιστεί ένας στόχος και να επιστρέψει το αντικείμενο προορισμού. Το επιχείρημα, «predicate» είναι βασικά μια κλήση συνάρτησης για καθέναν από τους στόχους. Επίσης, προαιρετικά, μπορούμε να περάσουμε μερικές τιμές διαμόρφωσης, όπως το χρονικό όριο ως δεύτερο όρισμα.
await pageChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = αναμονή browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Παραπομπή: Πατήστε εδώ για να διαβάσετε περισσότερα σχετικά με τα γεγονότα και τις μεθόδους της κατηγορίας BrowserContext.

Συμπέρασμα:

Σε αυτό το σεμινάριο «Puppeteer Browser Class», εξηγήσαμε την κλάση BrowserFetcher, την κλάση BrowserContext και την κατηγορία Browser που περιλαμβάνει τους σημαντικούς χώρους ονομάτων (εάν υπάρχουν), τα συμβάντα (εάν υπάρχουν) και τις μεθόδους που χρησιμοποιούνται συχνά στις τεχνικές απόξεσης ιστού Puppeteer με παραδείγματα. Στο επόμενο άρθρο, θα εξηγήσουμε τάξη σελίδας, πλαισίου και διαλόγου.

Αφήστε ένα σχόλιο