Świetny przewodnik edukacyjny klasy Puppeteer Browser (samouczek 8)

Puppeteer to biblioteka js typu open source, która służy do automatyzacji sieci i narzędzia do skrobania sieci. Aby rozpocząć pracę z Puppeteerem, potrzebujesz podstawowej znajomości języka JavaScript i struktury HTML DOM. Ta seria samouczków Puppeteer jest podzielona na poniższe segmenty, które wyposażą Cię we całe doświadczenie niezbędne do rozpoczęcia pracy z Puppeteer. 

Samouczek lalkarza

Samouczek Tosca nr 1: Przegląd lalkarza

Samouczek Tosca nr 2: Zmienne środowiskowe lalkarza

Samouczek Tosca nr 3: Przeszukiwanie sieci lalkarza i automatyzacja testów lalkarza - przegląd

Samouczek Tosca nr 4: Zainstaluj Puppeteer

Samouczek Tosca nr 5: Przykładowy projekt lalkarza

Samouczek Tosca nr 6: Testowanie automatyzacji lalkarza

Samouczek Tosca nr 7: Klasa lalkarzy

Samouczek Tosca nr 8: Klasa lalkarza w przeglądarce

Tosca Poradnik #9: Klasa lalkarza

W tym samouczku „Puppeteer Browser Class” będziemy mieli dogłębne zrozumienie poniższych klas, które składają się z ważnych przestrzeni nazw, zdarzeń i innych wyczerpujących metod, które są potrzebne do pracy z technikami skrobania sieci Puppeteer.  

Lalkarz Klasa BrowserFetcher

Klasa Puppeteer BrowserFetcher służy do pobierania różnych wersji przeglądarek i zarządzania nimi. Klasa BrowserFetcher działa na ciągu rewizji, który określa wersję przeglądarki Chrome. Numer wersji można uzyskać pod adresem tutaj. W przypadku przeglądarki Firefox co noc pobiera przeglądarkę na podstawie numeru wersji.

Poniższy przykład pokazuje, jak pobrać i uruchom przeglądarkę Chrome przy użyciu klasy BrowserFetcher.

const browserFetcher = puppeteer.createBrowserFetcher(); const revInfo = czekaj na browserFetcher.download('766890'); const browserChrome= await puppeteer.launch({executablePath: revInfo.executablePath})

Nie można pracować jednocześnie z inną instancją klasy BrowserFetcher. W następnych sekcjach wyjaśniono często używane metody klasy BrowserFetcher.

Lalkarz BrowserFetcher Class - Metody:

Poniższe metody są dostępne w klasie puppeteer browserfetcher,

browserFetcher.canDownload (wersja) - Za pomocą numeru rewizji przeglądarki metoda ta sprawdza dostępność określonej przeglądarki w ramach żądania nagłówka. Metoda zwraca wartość logiczną (prawda lub fałsz) na podstawie dostępności.

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

browserFetcher.download (wersja [, progressCallback]) - Ta metoda pobiera przeglądarkę chrome przy użyciu argumentu numeru wersji. Tutaj progressCallback jest opcjonalnym argumentem, który wywołuje funkcję z dwoma argumentami - pobranymi bajtami i całkowitą liczbą bajtów. Ta metoda zwraca informacje o rewizji jako obiekt obietnicy.

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

browserFetcher.host () - Zwraca nazwę hosta, który jest używany do pobierania przeglądarki.

const hostName = browserFetcher.host ();

browserFetcher.localRevisions () - Zwraca listę wszystkich wersji dostępnych w systemie lokalnym.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Zwraca nazwę platformy hosta, którą będzie dowolny z mac, Linux, win32 lub win64.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Zwraca nazwę przeglądarki, która będzie chrome lub firefox

const productName = browserFetcher.product ();

browserFetcher.remove (wersja) - Ta metoda służy do usuwania określonej wersji dla bieżącego produktu / przeglądarki. Zwraca obiekt obietnicy, który jest rozwiązany po zakończeniu procesu.

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

browserFetcher.revisionInfo (wersja) - Zwróci obiekt w informacjach o rewizji, które obejmują wersję, ścieżkę folderu, ścieżkę wykonywalną, adres URL, lokalną i produkt.

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

Numer referencyjny: Kliknij tutaj aby dowiedzieć się więcej o metodach klasy BrowserFetcher.

Lalkarz Klasa przeglądarki

Klasa Puppeteer Browser jest tworzona, gdy lalkarz uruchomił lub połączył się z przeglądarką za pomocą lalkarz.uruchom or lalkarz.connect Metody.

Poniższy przykład pokazuje, jak utworzyć klasę Browser i stronę za pomocą odwołania do przeglądarki.

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

Często używane zdarzenia i metody klasy Browser są wyjaśnione w następnej sekcji.

Lalkarz Klasa przeglądarki - zdarzenia:

Poniższe zdarzenia są dostępne w klasie przeglądarkowej,

  • browser.on ('odłączony') - To zdarzenie jest wywoływane, gdy przeglądarka jest zamknięta / uległa awarii lub przeglądarka.odłącz wywoływana jest metoda.
  • browser.on ('targetchanged') - To zdarzenie jest wywoływane, gdy zmieni się adres URL celu.
  • browser.on ('targetcreated') - To zdarzenie jest wywoływane, gdy nowa strona została otwarta w nowej karcie lub oknie przy użyciu metody przeglądarka.nowaStrona or okno.otwórz.
  • browser.on ('targetdestroyed') - To zdarzenie jest wywoływane, gdy cel zostanie zniszczony, tj. Strona zostanie zamknięta.

Lalkarz Klasa przeglądarki - metody:

Poniższe metody są dostępne w klasie przeglądarki,

  • browser.browserContexts () - Zwraca listę wszystkich kontekstów przeglądarki. W przypadku nowo uruchomionej przeglądarki ta metoda zwróci pojedynczą instancję BrowserContext.
  • browser.close () - Ta metoda służy do zamykania wszystkich otwartych stron przeglądarki Chrome. 

await browser.close ();

  • browser.createIncognitoBrowserContext () - Tworzy / zwraca kontekst przeglądarki incognito, który nigdy nie udostępni plików cookie ani pamięci podręcznej innym kontekstom przeglądarki. W poniższym przykładzie strona internetowa (google) zostanie otwarta w trybie incognito.

(async () => {
  const chromeBrowser = await puppeteer.launch ();
  // Utwórz nowy kontekst przeglądarki incognito.
  const context = await chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = await context.newPage ();
  await pageChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Zwraca domyślny kontekst przeglądarki, którego nie można zniszczyć ani zamknąć.
  • browser.disconnect () - Odłączy przeglądarkę od lalkarza. Ale w tym przypadku przeglądarka pozostanie uruchomiona.
  • browser.isConnected () - Ta metoda sprawdza, czy przeglądarka jest podłączona, czy nie. Zwróci wartości logiczne na podstawie sprawdzenia.

const boolFlag = await browser.isConnected ();

  • browser.newPage () - Ta metoda utworzy nową stronę i zwróci instancję strony.

const page = czekaj browser.newPage ();

  • browser.pages () - Ta metoda zwraca listę wszystkich stron, które są aktualnie otwarte.

const pageList = await browser.pages ();

  • browser.process () - Ta metoda zwraca utworzony proces przeglądarki. Jeśli przeglądarka została utworzona przy użyciu przeglądarka.połącz metoda i zwróci wartość null.
  • browser.target () - Ta metoda zwraca cel powiązany z przeglądarką.

const target = await browser.target ();

  • browser.targets () - Zwraca listę wszystkich aktywnych celów w przeglądarce.

const targetList = await browser.targets ();

  • browser.userAgent () - Zwraca obiekt obietnicy dotyczący oryginalnego agenta przeglądarki.
  • browser.version () - Zwraca wersję przeglądarki w formacie „HeadlessChrome / xx.x.xxxx.x ”dla bezgłowego chromu i„ Chrome / xx.x.xxxx.x 'dla chromu bez głowy. Format może ulec zmianie w przyszłej wersji.
  • browser.waitForTarget (predicate [, options]) - Przeszuka wszystkie konteksty przeglądarki i zaczeka na cel.

czekaj na pageChrome.evaluate(() => window.open('https://techiescience.com/'));
const newWindowTarget = czekaj na przeglądarkę.waitForTarget(target => target.url() === 'https://techiescience.com/');

  • browser.wsEndpoint () - Zwraca adres URL gniazda sieciowego przeglądarki.

const wsUrl = czekaj browser.wsEndPoint ();

Numer referencyjny: Kliknij tutaj aby dowiedzieć się więcej o zdarzeniach i metodach klas przeglądarki.

Lalkarz Klasa BrowserContext

Klasa BrowserContext ułatwia obsługę wielu wystąpień przeglądarki. Po uruchomieniu instancji przeglądarki domyślnie używany jest jeden BrowserContext. Plik przeglądarkaChrome.Nowa strona() tworzy stronę w domyślnym obiekcie klasy BrowserContext. Jeśli strona internetowa wywołuje inną stronę, to nowa strona powinna należeć do kontekstu przeglądarki strony nadrzędnej. Tutaj nową stronę można utworzyć za pomocą dotychczasowy window.open () Metoda. 

W poniższym przykładzie Puppeteer ma możliwość tworzenia kontekstu przeglądarki w trybie „incognito”. Kontekst przeglądarki „incognito” nie zapisuje żadnych danych w pamięci.

// Tworzenie kontekstu przeglądarki incognito const contextIncognito = await browserChrome.createIncognitoBrowserContext(); // Tworzenie nowej strony poprzez kontekst przeglądarki. const pageChrome = await contextIncognito.newPage(); czekaj na stronęChrome.goto('https://www.google.com'); //zamknij kontekst po użyciu await contextIncognito.close();

W następnej sekcji wyjaśniono często używane zdarzenia i metody klasy BrowserContext.

Lalkarz BrowserContext Class - zdarzenia:

Poniższe zdarzenia są dostępne w klasie browserercontext,

  • browserContext.on (targetchanged) - To zdarzenie jest wywoływane, gdy zmienił się adres URL celu w kontekście przeglądarki.
  • browserContext.on (targetcreated) - To zdarzenie jest wywoływane po utworzeniu wewnątrz kontekstu przeglądarki. Metody okno.otwórz browserContext.nowaStrona są odpowiedzialni za to wydarzenie.
  • browserContext.on ('targetdestroyed') - To zdarzenie jest wyzwalane, gdy cel zostanie zniszczony w kontekście przeglądarki.

Lalkarz BrowserContext Class - Metody:

Poniższe metody są dostępne w klasie browserercontext,

  • browserContext.browser () - Ta metoda zwraca obiekt przeglądarki, który jest dostępny w kontekście przeglądarki.
  • browserContext.clearPermissionOverrides () - Ta metoda usuwa wszystkie nadpisania uprawnień z kontekstu przeglądarki. Poniższy przykład pokazuje, jak używać tej metody - 

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

  • browserContext.close () - Ta metoda służy do zamykania lub niszczenia kontekstu przeglądarki. Wszystkie przeglądarki dostępne w kontekście przeglądarki zostaną zamknięte.

browserContext.close ();

  • browserContext.isIncognito () - Ta metoda służy do sprawdzenia, czy przeglądarka została utworzona w trybie „incognito”, czy nie. Zwraca wartość logiczną (true - tryb incognito lub false - tryb inny niż incognito) w oparciu o tryb przeglądarki. Domyślnie każda przeglądarka jest wywoływana w trybie „nie incognito”.

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Ta metoda służy do tworzenia nowej strony w tym samym kontekście przeglądarki.

browserContext.newPage ();

  • browserContext.overridePermissions (pochodzenie, pozwolenie) - Ta metoda służy do nadania określonego pozwolenia źródłu, tj. Docelowemu adresowi URL. Różne uprawnienia, które można przyznać, to:
  • „geolokalizacja”
  • 'midi-sysex' (systemowy midi)
  • „midi”
  • 'Pchać'
  • 'aparat fotograficzny'
  • „powiadomienia”
  • 'mikrofon'
  • 'czujnik światła otoczenia'
  • „akcelerometr”
  • „synchronizacja w tle”
  • 'żyroskop'
  • „zdarzenia związane z dostępnością”
  • „odczyt ze schowka”
  • 'magnetometr'
  • „zapis do schowka”
  • „osoba obsługująca płatności”

Poniższy przykład pokazuje, jak udzielić pozwolenia -

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

  • browserContext.pages () - Ta metoda zwraca listę wszystkich otwartych stron dostępnych w kontekście przeglądarki. Żadna niewidoczna strona nie zostanie tutaj wymieniona.

const openPageList = browserContext.pages ();

  • browserContext.targets () - Ta metoda zwraca listę wszystkich aktywnych celów dostępnych w kontekście przeglądarki. Żadna niewidoczna strona nie zostanie tutaj wymieniona.

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget (predicate [, options]) - Ta metoda służy do czekania na pojawienie się celu i zwrócenie obiektu docelowego. Argument „predykat” jest w zasadzie wywołaniem funkcji dla każdego celu. Opcjonalnie możemy również przekazać niektóre wartości konfiguracyjne, takie jak limit czasu, jako drugi argument.
await pageChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = czekaj na browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Numer referencyjny: Kliknij tutaj aby dowiedzieć się więcej o zdarzeniach i metodach klasy BrowserContext.

Wnioski:

W tym samouczku „Puppeteer Browser Class” wyjaśniliśmy klasę BrowserFetcher, BrowserContext i klasę Browser, która zawiera ważne przestrzenie nazw (jeśli istnieją), zdarzenia (jeśli występują) i metody, które są często używane w technikach skrobania sieci Puppeteer z przykłady. W następnym artykule wyjaśnimy klasę Page, Frame i Dialog.

Zostaw komentarz