Skvělá výuková příručka pro třídu prohlížeče loutkářů (výukový program 8)

Puppeteer je knihovna uzlů js s otevřeným zdrojovým kódem a používá se jako nástroj pro automatizaci webu a škrábání webu. Abyste mohli začít pracovat s Puppeteerem, potřebujete základní znalost Javascriptů a struktury HTML DOM. Tato řada výukových programů pro loutkáře je rozdělena do níže uvedených segmentů, které vám poskytnou všechny potřebné zkušenosti pro zahájení práce s loutkářem. 

Výukový program pro loutkáře

Výukový program Tosca č. 1: Loutkář - přehled

Výukový program Tosca č. 2: Proměnné prostředí loutkáře

Výukový program Tosca č. 3: Přehled škrábání webu Puppeteer a Puppeteer Test Automation

Výukový program Tosca č. 4: Nainstalujte si Puppeteer

Výukový program Tosca č. 5: Ukázka projektu Loutkář

Výukový program Tosca č. 6: Testování automatizace loutkářů

Výukový program Tosca č. 7: Loutkářská třída

Výukový program Tosca č. 8: Třída prohlížeče loutkářů

Tosca konzultace #9: Třída loutkářských stránek

V tomto výukovém programu „Třída prohlížeče loutkářů“ budeme hlouběji porozumět níže uvedeným třídám, které se skládají z důležitých jmenných prostorů, událostí a dalších vyčerpávajících metod, které jsou nutné pro práci s technikami škrábání webových stránek Puppeteer.  

Loutkář Třída BrowserFetcher

Třída Puppeteer BrowserFetcher se používá ke stahování a správě různých verzí prohlížeče. Třída BrowserFetcher pracuje na revizním řetězci, který určuje verzi prohlížeče Chrome. Číslo revize lze získat z zde. V případě Firefoxu si prohlížeč stáhne každou noc na základě čísla verze.

Níže uvedený příklad ukazuje, jak stáhnout a spusťte prohlížeč Chrome pomocí třídy BrowserFetcher.

const browserFetcher = puppeteer.createBrowserFetcher(); const revInfo = čekat browserFetcher.download('766890'); const browserChrome= wait puppeteer.launch({executablePath: revInfo.executablePath})

Není možné pracovat současně s jinou instancí třídy BrowserFetcher. Často používané metody třídy BrowserFetcher jsou vysvětleny v následujících částech.

Loutkář Třída BrowserFetcher - Metody:

Níže uvedené metody jsou k dispozici ve třídě prohlížečů loutkářů,

browserFetcher.canDownload (revize) - S pomocí čísla revize prohlížeče tato metoda kontroluje dostupnost zadaného prohlížeče jako součást požadavku na záhlaví. Metoda vrací booleovskou hodnotu (true nebo false) na základě dostupnosti.

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

browserFetcher.download (revize [, progressCallback]) - Tato metoda stáhne prohlížeč Chrome pomocí argumentu číslo revize. Zde progressCallback je volitelný argument, který volá funkci se dvěma argumenty - staženými bajty a celkovými bajty. Tato metoda vrací informace o revizi jako objekt příslibu.

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

browserFetcher.host () - Vrací název hostitele, který se používá ke stažení prohlížeče.

const HostName = browserFetcher.host ();

browserFetcher.localRevisions () - Vrátí seznam všech revizí, které jsou k dispozici v místním systému.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Vrátí název platformy hostitele, kterým bude některý z počítačů mac, Linux, win32 nebo win64.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Vrátí název prohlížeče, který bude buď chromovaný nebo firefox

const productName = browserFetcher.product ();

browserFetcher.remove (revize) - Tato metoda se používá k odstranění zadané revize pro aktuální produkt / prohlížeč. Vrátí objekt zaslíbení, který je vyřešen po dokončení procesu.

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

browserFetcher.revisionInfo (revize) - Vrátí objekt na základě informací o revizi, které zahrnují revision, folderPath, executablePath, url, local a product.

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

Reference: klikněte zde dozvědět se více o metodách třídy BrowserFetcher.

Loutkář Třída prohlížeče

Třída Puppeteer Browser se vytvoří, když loutkář spustil nebo připojil prohlížeč pomocí loutkář. odpoledne or loutkář. připojit metody.

Níže uvedený příklad ukazuje, jak vytvořit třídu a stránku prohlížeče pomocí odkazu na prohlížeč.

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

Často používané události a metody třídy Browser jsou vysvětleny v následující části.

Loutkář Třída prohlížeče - Události:

Níže uvedené události jsou k dispozici ve třídě prohlížeče,

  • browser.on ('odpojeno') - Tato událost se spustí, když je prohlížeč zavřený / havarovaný nebo prohlížeč. odpojit metoda se nazývá.
  • browser.on ('targetchanged') - Tato událost se spustí, když se změní adresa URL cíle.
  • browser.on ('targetcreated') - Tato událost se spustí, když se nová stránka metodou otevře na nové kartě nebo v okně browser.newPage or okno. otevřít.
  • browser.on ('targetdestroyed') - Tato událost se spustí, když je cíl zničen, tj. Stránka je uzavřena.

Loutkář Třída prohlížeče - metody:

Níže uvedené metody jsou k dispozici ve třídě prohlížeče,

  • browser.browserContexts () - Vrátí seznam všech kontextů prohlížeče. U nově spuštěného prohlížeče tato metoda vrátí jednu instanci BrowserContext.
  • browser.close () - Tato metoda se používá k zavření všech otevřených stránek prohlížeče Chrome. 

čekat browser.close ();

  • browser.createIncognitoBrowserContext () - Vytváří / vrací kontext prohlížeče inkognito, který nikdy nebude sdílet soubory cookie nebo mezipaměť s jinými kontexty prohlížeče. V níže uvedeném příkladu se webová stránka (google) otevře v anonymním režimu.

(async () => {
  const chromeBrowser = await puppeteer.launch ();
  // Vytvořit nový kontext prohlížeče inkognito.
  const kontext = čekat chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = await context.newPage ();
  čekat pageChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Vrátí výchozí kontext prohlížeče, který nelze zničit nebo zavřít.
  • browser.disconnect () - Odpojí prohlížeč od loutkáře. Prohlížeč však v tomto případě zůstane spuštěný.
  • browser.isConnected () - Tato metoda kontroluje, zda je prohlížeč připojen nebo ne. Na základě kontroly vrátí booleovské hodnoty.

const boolFlag = čekat na prohlížeč.isConnected ();

  • browser.newPage () - Tato metoda vytvoří novou stránku a vrátí instanci stránky.

const stránka = čekat na prohlížeč.newPage ();

  • browser.pages () - Tato metoda vrací seznam všech stránek, které jsou aktuálně v otevřeném stavu.

const pageList = čekat na browser.pages ();

  • browser.process () - Tato metoda vrací vytvořený proces prohlížeče. Pokud je prohlížeč vytvořen pomocí prohlížeč. připojit metoda a vrátí hodnotu null.
  • browser.target () - Tato metoda vrací cíl přidružený k prohlížeči.

const target = čekat na prohlížeč.target ();

  • browser.targets () - Vrátí seznam všech aktivních cílů v prohlížeči.

const targetList = await browser.targets ();

  • browser.userAgent () - Vrací objekt slibu o původním agentovi prohlížeče.
  • browser.version () - Vrátí verzi prohlížeče ve formátu 'HeadlessChrome / xx.x.xxxx.x 'pro bezhlavý chrom a' Chrome / xx.x.xxxx.x 'pro bezhlavý chrom. V budoucím vydání se formát může změnit.
  • browser.waitForTarget (predikát [, možnosti]) - Bude vyhledávat ve všech kontextech prohlížeče a čekat na cíl.

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

  • browser.wsEndpoint () - Vrátí adresu URL webové zásuvky prohlížeče.

const wsUrl = čekat na prohlížeč.wsEndPoint ();

Reference: klikněte zde dozvědět se více o událostech a metodách třídy prohlížeče.

Loutkář Třída BrowserContext

Třída BrowserContext pomáhá provozovat více instancí prohlížeče. Po spuštění instance prohlížeče se ve výchozím nastavení použije jeden BrowserContext. The prohlížeč Chrome.nová stránka() metoda vytvoří stránku ve výchozím objektu třídy BrowserContext. Pokud webová stránka vyvolá jinou stránku, měla by nová stránka patřit do kontextu prohlížeče nadřazené stránky. Zde lze novou stránku vytvořit pomocí ο window.open () metoda. 

V níže uvedeném příkladu má Puppeteer schopnost vytvářet kontext prohlížeče v režimu „inkognito“. Kontext prohlížeče „inkognito“ nezapisuje do úložiště žádná data.

// Vytvoření anonymního kontextu prohlížeče const contextIncognito = wait browserChrome.createIncognitoBrowserContext(); // Vytvoření nové stránky prostřednictvím kontextu prohlížeče. const pageChrome = čekat contextIncognito.newPage(); wait pageChrome.goto('https://www.google.com'); //zavřít kontext po použití wait contextIncognito.close();

Často používané události a metody třídy BrowserContext jsou vysvětleny v následující části.

Loutkář BrowserContext Class - Události:

Níže uvedené události jsou k dispozici ve třídě kontextu prohlížeče,

  • browserContext.on (targetchanged) - Tato událost se spustí, když se změní adresa URL cíle v kontextu prohlížeče.
  • browserContext.on (targetcreated) - Tato událost je spuštěna po vytvoření uvnitř kontextu prohlížeče. Metody okno. otevřít  a  browserContext.newPage jsou zodpovědní za tuto událost.
  • browserContext.on ('targetdestroyed') - Tato událost se spustí, když je cíl zničen v kontextu prohlížeče.

Loutkář BrowserContext Class - Metody:

Níže uvedené metody jsou k dispozici ve třídě kontextu prohlížeče,

  • browserContext.browser () - Tato metoda vrací objekt prohlížeče, který je k dispozici v kontextu prohlížeče.
  • browserContext.clearPermissionOverrides () - Tato metoda odstraní všechna přepsání oprávnění z kontextu prohlížeče. Níže uvedený příklad ukazuje, jak tuto metodu použít - 

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

  • browserContext.close () - Tato metoda se používá k uzavření nebo zničení kontextu prohlížeče. Všechny prohlížeče dostupné v kontextu prohlížeče budou zavřeny.

browserContext.close ();

  • browserContext.isIncognito () - Tato metoda se používá ke kontrole, zda byl prohlížeč vytvořen v režimu „inkognito“. Vrátí logickou hodnotu (true - anonymní režim nebo false - neinkognito režim) na základě režimu prohlížeče. Ve výchozím nastavení je jakýkoli prohlížeč vyvolán v režimu „non-incognito“.

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Tato metoda se používá k vytvoření nové stránky ve stejném kontextu prohlížeče.

browserContext.newPage ();

  • browserContext.overridePermissions (původ, oprávnění) - Tato metoda se používá k udělení zadaného oprávnění původu, tj. Cílové adrese URL. Různá oprávnění, která jsou k dispozici k udělení, jsou -
  • 'geolokace'
  • 'midi-sysex' (systémový exkluzivní midi)
  • 'midi'
  • 'tam'
  • 'Fotoaparát'
  • ‚oznámení '
  • 'mikrofon'
  • 'senzor okolního světla'
  • 'akcelerometr'
  • 'background-sync'
  • 'gyroskop'
  • „události přístupnosti“
  • 'clipboard-read'
  • ‚magnetometr '
  • 'clip-write'
  • 'zpracovatel plateb'

Níže uvedený příklad ukazuje, jak udělit oprávnění -

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

  • browserContext.pages () - Tato metoda vrací seznam všech otevřených stránek dostupných v kontextu prohlížeče. Zde nebude uvedena žádná neviditelná stránka.

const openPageList = browserContext.pages ();

  • browserContext.targets () - Tato metoda vrací seznam všech aktivních cílů dostupných v kontextu prohlížeče. Zde nebude uvedena žádná neviditelná stránka.

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget (predikát [, možnosti]) - Tato metoda se používá k čekání na objevení se cíle a vrácení cílového objektu. Argument „predikát“ je v podstatě volání funkce pro každý z cílů. Volitelně můžeme předat některé konfigurační hodnoty, jako je například časový limit, jako druhý argument.
wait pageChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = wait browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Reference: klikněte zde číst více o událostech a metodách třídy BrowserContext.

Závěr:

V tomto výukovém kurzu „Puppeteer Browser Class“ jsme vysvětlili třídu BrowserFetcher, třídu BrowserContext a třídu Browser, která obsahuje důležité jmenné prostory (pokud existují), události (jsou-li nějaké) a metody, které se často používají v technikách škrabání webů Puppeteer s příklady. V příštím článku vysvětlíme třídu Page, Frame a Dialog.

Zanechat komentář