Großartiger Lernleitfaden für die Puppeteer-Browserklasse (Tutorial 8)

Puppeteer ist eine Open-Source-Node-JS-Bibliothek und wird sowohl als Web-Automatisierungs- als auch als Web-Scraping-Tool verwendet. Sie benötigen grundlegende Kenntnisse von Javascript und der HTML-DOM-Struktur, um mit Puppeteer arbeiten zu können. Diese Puppeteer-Tutorialreihe ist in die folgenden Abschnitte unterteilt, die Ihnen die nötige Erfahrung vermitteln, um mit Puppeteer zu arbeiten. 

Puppenspieler Tutorial

Tosca Tutorial # 1: Puppenspieler Übersicht

Tosca Tutorial # 2: Puppenspieler-Umgebungsvariablen

Tosca Tutorial # 3: Übersicht über Puppenspieler-Web-Scraping und Puppenspieler-Testautomatisierung

Tosca Tutorial # 4: Installieren Sie Puppenspieler

Tosca Tutorial # 5: Beispiel eines Puppenspielerprojekts

Tosca Tutorial # 6: Puppenspieler-Automatisierungstests

Tosca Tutorial # 7: Puppenspieler Klasse

Tosca Tutorial # 8: Puppenspieler-Browser-Klasse

Tosca Dein Thema #9: Puppenspieler-Seitenklasse

In diesem Tutorial „Puppeteer Browser Class“ werden wir die unten genannten Klassen genauer kennenlernen, die aus wichtigen Namespaces, Ereignissen und anderen umfassenden Methoden bestehen, die für die Arbeit mit Puppeteer Web Scraping-Techniken erforderlich sind.  

Puppenspieler BrowserFetcher-Klasse

Die Puppenspieler-BrowserFetcher-Klasse wird zum Herunterladen und Verwalten der verschiedenen Browserversionen verwendet. Die BrowserFetcher-Klasse arbeitet mit einer Revisionszeichenfolge, die die Version des Chrome-Browsers angibt. Die Revisionsnummer erhalten Sie von hier. Im Fall von Firefox wird der Browser jeden Abend basierend auf der Versionsnummer heruntergeladen.

Das folgende Beispiel zeigt, wie man herunterlädt und Starten Sie den Chrome-Browser mit der BrowserFetcher-Klasse.

const browserFetcher = puppeteer.createBrowserFetcher(); const revInfo = warte auf browserFetcher.download('766890'); const browserChrome= warte auf puppeteer.launch({ausführbarerPfad: revInfo.ausführbarerPfad})

Es ist nicht möglich, gleichzeitig mit einer anderen Instanz der BrowserFetcher-Klasse zu arbeiten. Die häufig verwendeten Methoden der BrowserFetcher-Klasse werden in den nächsten Abschnitten erläutert.

Puppenspieler BrowserFetcher-Klasse - Methoden:

Die folgenden Methoden sind in der Puppenspieler-Browserfetcher-Klasse verfügbar:

browserFetcher.canDownload (Überarbeitung) - Mit Hilfe der Versionsnummer des Browsers überprüft diese Methode die Verfügbarkeit des angegebenen Browsers als Teil der Header-Anfrage. Die Methode gibt den booleschen Wert (true oder false) je nach Verfügbarkeit zurück.

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

browserFetcher.download (Revision [, progressCallback]) - Diese Methode lädt den Chrome-Browser mithilfe des Revisionsnummernarguments herunter. Hier ist progressCallback ein optionales Argument, das die Funktion mit zwei Argumenten aufruft - heruntergeladene Bytes und Gesamtbytes. Diese Methode gibt die Revisionsinformationen als Versprechungsobjekt zurück.

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

browserFetcher.host () - Es wird der Hostname zurückgegeben, der zum Herunterladen des Browsers verwendet wird.

const hostName = browserFetcher.host ();

browserFetcher.localRevisions () - Es wird die Liste aller Revisionen zurückgegeben, die im lokalen System verfügbar sind.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Es wird der Plattformname des Hosts zurückgegeben, bei dem es sich um Mac, Linux, Win32 oder Win64 handelt.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Es wird der Browsername zurückgegeben, der entweder Chrome oder Firefox ist

const productName = browserFetcher.product ();

browserFetcher.remove (Überarbeitung) - Mit dieser Methode wird die angegebene Revision für das aktuelle Produkt / den aktuellen Browser entfernt. Es gibt das Versprechen-Objekt zurück, das nach Abschluss des Prozesses aufgelöst wird.

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

browserFetcher.revisionInfo (Revision) - Es wird ein Objekt mit Revisionsinformationen zurückgegeben, das Revision, Ordnerpfad, ausführbarer Pfad, URL, Lokal und Produkt enthält.

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

Referenz: Klicken Sie auf Kostenlos erhalten und dann auf Installieren. hier Weitere Informationen zu den Methoden der BrowserFetcher-Klasse.

Puppenspieler Browser-Klasse

Die Puppenspieler-Browser-Klasse wird erstellt, wenn der Puppenspieler den Browser über gestartet oder verbunden hat Puppenspieler.Start or Puppenspieler.Verbinden Methoden.

Das folgende Beispiel zeigt, wie Sie die Browser-Klasse und -Seite mithilfe der Browser-Referenz erstellen.

const puppeteer = require('puppeteer'); (async () => { const browserChrome = warte auf puppeteer.launch(); const pageChrome = warte auf browserChrome.newPage(); warte auf pageChrome.goto('https://www.google.com'); warte auf browserChrome.close( ); })();

Die häufig verwendeten Ereignisse und Methoden der Browser-Klasse werden im nächsten Abschnitt erläutert.

Puppenspieler Browser-Klasse - Ereignisse:

Die folgenden Ereignisse sind in der Browserklasse verfügbar.

  • browser.on ('nicht verbunden') - Dieses Ereignis wird ausgelöst, wenn der Browser geschlossen / abgestürzt ist oder browser.disconnect Methode wird aufgerufen.
  • browser.on ('targetchanged') - Dieses Ereignis wird ausgelöst, wenn sich die URL des Ziels geändert hat.
  • browser.on ('targetcreated') - Dieses Ereignis wird ausgelöst, wenn die neue Seite von der Methode in einem neuen Tab oder Fenster geöffnet wird browser.neueSeite or window.open.
  • browser.on ('targetdestroyed') - Dieses Ereignis wird ausgelöst, wenn das Ziel zerstört wird, dh die Seite geschlossen wird.

Puppenspieler Browser-Klasse - Methoden:

Die folgenden Methoden sind in der Browserklasse verfügbar:

  • browser.browserContexts () - Es gibt die Liste aller Browserkontexte zurück. Bei einem neu gestarteten Browser gibt diese Methode die einzelne BrowserContext-Instanz zurück.
  • browser.close () - Mit dieser Methode werden alle geöffneten Chrom-Browser-Seiten geschlossen. 

warte auf browser.close ();

  • browser.createIncognitoBrowserContext () - Es wird der Inkognito-Browserkontext erstellt / zurückgegeben, der die Cookies oder den Cache niemals mit anderen Browserkontexten teilt. Im folgenden Beispiel wird die Webseite (Google) im Inkognito-Modus geöffnet.

(async () => {
  const chromeBrowser = warte auf puppeteer.launch ();
  // Neuen Inkognito-Browserkontext erstellen.
  const context = warte auf chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = warte auf context.newPage ();
  warte auf pageChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Es wird der Standard-Browserkontext zurückgegeben, der nicht zerstört oder geschlossen werden kann.
  • browser.disconnect () - Der Browser wird vom Puppenspieler getrennt. In diesem Fall läuft der Browser jedoch weiter.
  • browser.isConnected () - Diese Methode prüft, ob der Browser verbunden ist oder nicht. Es werden boolesche Werte basierend auf der Prüfung zurückgegeben.

const boolFlag = warte auf browser.isConnected ();

  • browser.newPage () - Diese Methode erstellt eine neue Seite und gibt die Instanz der Seite zurück.

const page = warte auf browser.newPage ();

  • browser.pages () - Diese Methode gibt die Liste aller Seiten zurück, die sich derzeit im geöffneten Zustand befinden.

const pageList = warte auf browser.pages ();

  • browser.process () - Diese Methode gibt den erstellten Browserprozess zurück. Wenn der Browser mit erstellt wird browser.connect Methode, und es wird ein Nullwert zurückgegeben.
  • browser.target () - Diese Methode gibt das dem Browser zugeordnete Ziel zurück.

const target = warte auf browser.target ();

  • browser.targets () - Es wird die Liste aller aktiven Ziele im Browser zurückgegeben.

const targetList = warte auf browser.targets ();

  • browser.userAgent () - Es gibt das Versprechen-Objekt über den ursprünglichen Agenten des Browsers zurück.
  • browser.version () - Es gibt die Version des Browsers im Format 'HeadlessChrome / xx' zurück.x.xxxx.x 'für kopfloses Chrom und' Chrome / xx.x.xxxx.x 'für nicht kopfloses Chrom. Das Format kann sich in einer zukünftigen Version ändern.
  • browser.waitForTarget (Prädikat [, Optionen]) - Es wird in allen Browserkontexten gesucht und auf das Ziel gewartet.

Warten Sie auf pageChrome.evaluate(() => window.open('https://techiescience.com/'));
const newWindowTarget = waiting browser.waitForTarget(target => target.url() === 'https://techiescience.com/');

  • browser.wsEndpoint () - Es gibt die Web-Socket-URL des Browsers zurück.

const wsUrl = warte auf browser.wsEndPoint ();

Referenz: Klicken Sie auf Kostenlos erhalten und dann auf Installieren. hier Erfahren Sie mehr über Ereignisse und Methoden der Browser-Klasse.

Puppenspieler BrowserContext-Klasse

Die BrowserContext-Klasse hilft beim Betreiben mehrerer Browserinstanzen. Nach dem Starten einer Browserinstanz wird standardmäßig ein einzelner BrowserContext verwendet. Das browserChrom.neue Seite() Methode erstellt eine Seite im Standardobjekt der BrowserContext-Klasse. Wenn eine Webseite eine andere Seite aufruft, sollte die neue Seite zum Browserkontext der übergeordneten Seite gehören. Hier kann die neue Seite mit erstellt werden   window.open () Methode. 

Im folgenden Beispiel kann Puppenspieler einen Browserkontext im Inkognito-Modus erstellen. Der 'inkognito'-Browserkontext schreibt keine Daten in den Speicher.

// Inkognito-Browserkontexterstellung const contextIncognito = await browserChrome.createIncognitoBrowserContext(); // Erstellung einer neuen Seite durch den Browserkontext. const pageChrome = warte auf contextIncognito.newPage(); await pageChrome.goto('https://www.google.com'); //Kontext nach Gebrauch schließen await contextIncognito.close();

Die häufig verwendeten Ereignisse und Methoden der BrowserContext-Klasse werden im nächsten Abschnitt erläutert.

Puppenspieler BrowserContext-Klasse - Ereignisse:

Die folgenden Ereignisse sind in der browsercontext-Klasse verfügbar.

  • browserContext.on (Ziel geändert) - Dieses Ereignis wird ausgelöst, wenn sich die URL des Ziels im Browserkontext geändert hat.
  • browserContext.on (Ziel erstellt) - Dieses Ereignis wird nach der Erstellung innerhalb des Browserkontexts ausgelöst. Die Methoden window.open und browserContext.neueSeite sind für diese Veranstaltung verantwortlich.
  • browserContext.on ('targetdestroyed') - Dieses Ereignis wird ausgelöst, wenn das Ziel im Browserkontext zerstört wird.

Puppenspieler BrowserContext-Klasse - Methoden:

Die folgenden Methoden sind in der browsercontext-Klasse verfügbar:

  • browserContext.browser () - Diese Methode gibt das Browserobjekt zurück, das im Browserkontext verfügbar ist.
  • browserContext.clearPermissionOverrides () - Diese Methode entfernt alle Berechtigungsüberschreibungen aus dem Browserkontext. Das folgende Beispiel zeigt, wie diese Methode verwendet wird - 

const browserContext = browser.defaultBrowserContext ();
browserContext.overridePermissions ('https://www.google.com', ['Zwischenablage lesen']);
browserContext.clearPermissionOverrides ();

  • browserContext.close () - Diese Methode wird verwendet, um den Browserkontext zu schließen oder zu zerstören. Alle im Browserkontext verfügbaren Browser werden geschlossen.

browserContext.close ();

  • browserContext.isIncognito () - Mit dieser Methode wird überprüft, ob der Browser im Inkognito-Modus erstellt wurde oder nicht. Es wird ein boolescher Wert (true - Inkognito-Modus oder false - Non-Incognito-Modus) basierend auf dem Browsermodus zurückgegeben. Standardmäßig wird jeder Browser im Nicht-Inkognito-Modus aufgerufen.

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Mit dieser Methode wird eine neue Seite im selben Browserkontext erstellt.

browserContext.newPage ();

  • browserContext.overridePermissions (Ursprung, Berechtigung) - Diese Methode wird verwendet, um dem Ursprung, dh der Ziel-URL, die angegebene Berechtigung zu erteilen. Die verschiedenen Berechtigungen, die zur Erteilung verfügbar sind, sind:
  • "Geolokalisierung"
  • 'midi-sysex' (systemexklusives midi)
  • 'Midi'
  • 'drücken'
  • 'Kamera'
  • 'Benachrichtigungen'
  • 'Mikrofon'
  • 'Umgebungslichtsensor'
  • 'Beschleunigungsmesser'
  • 'Hintergrundsynchronisation'
  • 'Gyroskop'
  • 'Zugänglichkeitsereignisse'
  • "Zwischenablage lesen"
  • 'Magnetometer'
  • 'Zwischenablage schreiben'
  • 'Zahlungsabwickler'

Das folgende Beispiel zeigt, wie Sie eine Berechtigung erteilen -

const browserContext = browser.defaultBrowserContext ();
Warten Sie auf browserContext.overridePermissions ('https://www.google.com', ['geolocation']);

  • browserContext.pages () - Diese Methode gibt die Liste aller geöffneten Seiten zurück, die im Browserkontext verfügbar sind. Nicht sichtbare Seiten werden hier nicht aufgelistet.

const openPageList = browserContext.pages ();

  • browserContext.targets () - Diese Methode gibt die Liste aller aktiven Ziele zurück, die im Browserkontext verfügbar sind. Nicht sichtbare Seiten werden hier nicht aufgelistet.

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget (Prädikat [, Optionen]) - Mit dieser Methode wird gewartet, bis ein Ziel angezeigt und das Zielobjekt zurückgegeben wurde. Das Argument 'Prädikat' ist im Grunde ein Funktionsaufruf für jedes der Ziele. Optional können wir auch einige Konfigurationswerte wie Timeout als zweites Argument übergeben.
await pageChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = warten auf browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Referenz: Klicken Sie auf Kostenlos erhalten und dann auf Installieren. hier Weitere Informationen zu Ereignissen und Methoden der BrowserContext-Klasse.

Fazit:

In diesem Lernprogramm „Puppeteer Browser Class“ haben wir die BrowserFetcher-Klasse, die BrowserContext-Klasse und die Browser-Klasse erläutert, die wichtige Namespaces (falls vorhanden), Ereignisse (falls vorhanden) und Methoden enthalten, die häufig in Puppeteer-Web-Scraping-Techniken verwendet werden Beispiele. Im nächsten Artikel werden die Klassen "Page", "Frame" und "Dialog" erläutert.

Hinterlasse einen Kommentar