Puppeteer Browser Class - Isang Mahusay na Gabay sa Pag-aaral ng Puppeteer Tutorial 8

Klase ng Browser ng Puppeteer

Ang Puppeteer ay isang open-source node js library at ginagamit ang isang web automation pati na rin ang tool sa pag-scrap ng web. Kailangan mo ng pangunahing pag-unawa sa Javascript, at istraktura ng HTML DOM upang magsimulang magtrabaho kasama ang Puppeteer. Ang serye ng tutorial na Puppeteer na ito ay ipinamamahagi sa mga ilalim na segment na magbibigay sa iyo ng lahat ng kinakailangang karanasan upang makapagsimulang magtrabaho kasama ang Puppeteer. 

Tutorial ng Puppeteer

Tosca Tutorial # 1: Pangkalahatang-ideya ng Puppeteer

Tosca Tutorial # 2: Mga variable ng Kapaligiran ng Puppeteer

Tosca Tutorial # 3: Puppeteer Web Scraping at Pangkalahatang-ideya ng Puppeteer Test Pangkalahatang-ideya

Tosca Tutorial # 4: I-install ang Puppeteer

Tosca Tutorial # 5: Sample na Puppeteer Project

Tosca Tutorial # 6: Pagsubok sa Puppeteer Automation

Tosca Tutorial # 7: Klase ng Puppeteer

Tosca Tutorial # 8: Klase ng Browser ng Puppeteer

Tosca Tutorial # 9: Klase ng Pahina ng Puppeteer

Sa tutorial na "Puppeteer Browser Class" na ito, magkakaroon kami ng malalim na pag-unawa tungkol sa mga nabanggit na klase na binubuo ng mga mahahalagang namespace, kaganapan, at iba pang mga masusing pamamaraan na kinakailangan upang gumana sa mga diskarte sa pag-scrap ng Puppeteer web.  

Puppeteer Klase ng BrowserFetcher

Ang Puppeteer BrowserFetcher Class ay ginagamit upang mag-download at mamahala ng iba't ibang mga bersyon ng browser. Ang klase ng BrowserFetcher ay nagpapatakbo sa isang string ng rebisyon na tumutukoy sa bersyon ng chrome browser. Ang numero ng rebisyon ay maaaring makuha mula sa dito. Sa kaso ng Firefox, ina-download nito ang browser gabi-gabi batay sa numero ng bersyon.

Ipinapakita ng halimbawa sa ibaba kung paano mag-download at maglunsad ng chrome browser gamit ang klase ng BrowserFetcher.

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

Hindi posible na gumana nang sabay-sabay sa isa pang halimbawa ng klase ng BrowserFetcher. Ang mga madalas na ginagamit na pamamaraan ng klase ng BrowserFetcher ay ipinapaliwanag sa mga susunod na seksyon.

Puppeteer Class ng BrowserFetcher - Mga Paraan:

Ang mga pamamaraan sa ibaba ay magagamit sa klase ng pupfeteer browserfetcher,

browserFetcher.canDownload (rebisyon) - Sa tulong ng numero ng rebisyon ng browser, sinusuri ng pamamaraang ito ang pagkakaroon ng tinukoy na browser bilang isang bahagi ng kahilingan sa header. Ibinabalik ng pamamaraan ang halaga ng boolean (totoo o hindi) batay sa kakayahang magamit.

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

browserFetcher.download (rebisyon [, progressCallback]) - Ang pamamaraang ito ay nagda-download ng chrome browser gamit ang argumento ng numero ng rebisyon. Dito ang ProgressCallback ay isang opsyonal na argument na tumatawag sa pagpapaandar na may dalawang mga argumento - naida-download na mga byte at kabuuang mga byte. Ibinabalik ng pamamaraang ito ang impormasyon ng rebisyon bilang isang pangako na bagay.

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

browserFetcher.host () - Ibinabalik nito ang hostname, na ginagamit para sa pag-download ng browser.

const hostName = browserFetcher.host ();

browserFetcher.localRevisions () - Ibinabalik nito ang listahan ng lahat ng mga pagbabago na magagamit sa lokal na system.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Ibinabalik nito ang pangalan ng platform ng host, na magiging alinman sa mac, Linux, win32, o win64.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Ibinabalik nito ang pangalan ng browser na alinman sa chrome o firefox

const productName = browserFetcher.product ();

browserFetcher.remove (rebisyon) - Ginagamit ang pamamaraang ito upang alisin ang tinukoy na rebisyon para sa kasalukuyang produkto / browser. Ibinabalik nito ang bagay na pangako, na nalulutas pagkatapos makumpleto ang proseso.

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

browserFetcher.revisionInfo (rebisyon) - Ibabalik nito ang isang bagay sa impormasyon ng rebisyon na kasama ang pagbabago, folderPath, executablePath, url, lokal, at produkto.

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

Sanggunian: I-click ang dito upang matuto nang higit pa sa mga pamamaraan ng Klase ng BrowserFetcher.

Puppeteer Klase ng Browser

Ang klase ng Puppeteer Browser ay nilikha kapag ang puppeteer ay naglunsad o kumonekta sa browser gamit ang puppeteer.launch or puppeteer.kakonekta pamamaraan.

Ipinapakita sa ibaba ang halimbawa kung paano lumikha ng klase ng Browser at Pahina gamit ang sanggunian ng browser.

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

Ang madalas na ginagamit na mga kaganapan at pamamaraan ng klase ng Browser ay ipinapaliwanag sa susunod na seksyon.

Puppeteer Class ng Browser - Mga Kaganapan:

Sa ibaba ang mga kaganapan ay magagamit sa klase ng browser,

  • browser.on ('naka-disconnect') - Ang kaganapan na ito ay na-trigger kapag ang browser ay sarado / nag-crash o browser.disconnect ang pamamaraan ay tinawag.
  • browser.on ('targetchanged') - Ang kaganapan na ito ay na-trigger kapag ang url ng target ay nagbago.
  • browser.on ('targetcreated') - Ang kaganapan na ito ay na-trigger nang bumukas ang bagong pahina sa isang bagong tab o window sa pamamagitan ng pamamaraan browser.newPage or bintana.bukas.
  • browser.on ('targetdestroyed') - Ang kaganapan na ito ay na-trigger kapag ang target ay nawasak, ibig sabihin, ang pahina ay sarado.

Puppeteer Klase ng Browser - Mga Paraan:

Ang mga pamamaraan sa ibaba ay magagamit sa klase ng browser,

  • browser.browserContexts () - Ibinabalik nito ang listahan ng lahat ng mga konteksto ng browser. Para sa isang bagong inilunsad na browser, ibabalik ng pamamaraang ito ang solong halimbawa ng BrowserContext.
  • browser.close () - Ginagamit ang pamamaraang ito upang isara ang lahat ng mga bukas na pahina ng chromium-browser. 

naghihintay sa browser.close ();

  • browser.createIncognitoBrowserContext () - Lumilikha / nagbabalik ito ng konteksto ng incognito browser, na hindi kailanman ibabahagi ang mga cookies o cache sa anumang iba pang mga konteksto ng browser. Sa halimbawa sa ibaba, ang web page (google) ay bubuksan sa incognito mode.

(async () => {
  Const chromeBrowser = naghihintay sa puppeteer.launch ();
  // Lumikha ng bagong konteksto ng browser na incognito.
  const konteksto = naghihintay sa chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = naghihintay sa konteksto.newPage ();
  maghintay sa pageChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Ibinabalik nito ang default na konteksto ng browser na hindi masisira o sarado.
  • browser.disconnect () - Ididiskonekta nito ang browser mula sa puppeteer. Ngunit, mananatiling tumatakbo ang browser sa kasong ito.
  • browser.isConnected () - Sinusuri ng pamamaraang ito kung ang browser ay konektado o hindi. Ibabalik nito ang mga halagang boolean batay sa tseke.

const boolFlag = naghihintay sa browser.isConnected ();

  • browser.newPage () - Ang pamamaraang ito ay lilikha ng isang bagong pahina at ibabalik ang halimbawa ng pahina.

pahina ng Const = naghihintay sa browser.newPage ();

  • browser.pages () - Ibinabalik ng pamamaraang ito ang listahan ng lahat ng mga pahina na kasalukuyang nasa bukas na estado.

const pageList = naghihintay sa browser.pages ();

  • browser.process () - Ibinabalik ng pamamaraang ito ang nilikha na proseso ng browser. Kung ang browser ay nilikha gamit ang browser.connect paraan, at magbabalik ito ng isang null na halaga.
  • browser.target () - Ibinabalik ng pamamaraang ito ang target na nauugnay sa browser.

const target = naghihintay sa browser.target ();

  • browser.targets () - Ibinabalik nito ang listahan ng lahat ng mga aktibong target sa loob ng browser.

const targetList = naghihintay sa browser.targets ();

  • browser.userAgent () - Ibinabalik nito ang pangako na bagay tungkol sa orihinal na ahente ng browser.
  • browser.version () - Ibinabalik nito ang bersyon ng browser sa format ng 'HeadlessChrome / xx.x.xxxx.x 'para sa walang ulo na chrome at' Chrome / xx.x.xxxx.x 'para sa hindi chrome na walang ulo. Maaaring magbago ang format sa hinaharap na paglabas.
  • browser.waitForTarget (predicate [, options]) - Hahanapin nito ang lahat ng mga konteksto ng browser at hintayin ang target.

maghintay ng pageChrome.evaluate (() => window.open ('https://lambdageeks.com/'));
const newWindowTarget = naghihintay sa browser.waitForTarget (target => target.url () === 'https://lambdageeks.com/');

  • browser.wsEndpoint () - Ibinabalik nito ang url ng web socket ng browser.

Const wsUrl = naghihintay sa browser.wsEndPoint ();

Sanggunian: I-click ang dito upang matuto nang higit pa sa mga kaganapan at pamamaraan sa klase ng Browser.

Puppeteer Klase ng BrowserContext

Tumutulong ang klase ng BrowserContext upang mapatakbo ang maraming mga pagkakataon sa browser. Matapos ilunsad ang isang halimbawa ng browser, bilang default, ginagamit ang isang solong BrowserContext. Ang browserChrome.bagong pahina() Lumilikha ang pamamaraan ng isang pahina sa default na object ng klase ng BrowserContext. Kung ang isang web page ay nag-iimbita ng isa pang pahina, ang bagong pahina ay dapat na kabilang sa browser na browser ngontact. Dito, maaaring lumikha ng bagong pahina gamit ang ang window.open () pamamaraan. 

Sa halimbawa sa ibaba, may kakayahan ang Puppeteer na lumikha ng isang konteksto ng browser sa mode na 'incognito'. Ang konteksto ng browser na 'incognito' ay hindi nagsusulat ng anumang data sa imbakan.

// Incognito browser context creation
const contextIncognito = await browserChrome.createIncognitoBrowserContext();
// New page creation through the browser context.
const pageChrome = await contextIncognito.newPage();
await pageChrome.goto('https://www.google.com');
//close context after use
await contextIncognito.close();

Ang madalas na ginagamit na mga kaganapan at pamamaraan ng klase ng BrowserContext ay ipinapaliwanag sa susunod na seksyon.

Puppeteer Klase ng BrowserContext - Mga Kaganapan:

Ang mga kaganapan sa ibaba ay magagamit sa klase ng browser na browser,

  • browserContext.on (na-target) - Ang kaganapan na ito ay na-trigger kapag ang url ng target sa loob ng konteksto ng browser ay nagbago.
  • browserContext.on (target na nilikha) - Ang kaganapan na ito ay na-trigger pagkatapos ng paglikha ng loob ng konteksto ng browser. Ang mga pamamaraan bintana.bukas at browserContext.newPage responsable para sa kaganapang ito.
  • browserContext.on ('targetdestroyed') - Ang kaganapan na ito ay na-trigger kapag ang target ay nawasak sa loob ng konteksto ng browser.

Puppeteer Klase ng BrowserContext - Mga Paraan:

Ang mga pamamaraan sa ibaba ay magagamit sa klase ng browser na browser,

  • browserContext.browser () - Ibinabalik ng pamamaraang ito ang object ng browser na magagamit sa loob ng konteksto ng browser.
  • browserContext.clearPermissionOverrides () - Tinatanggal ng pamamaraang ito ang lahat ng mga pag-override ng pahintulot mula sa konteksto ng browser. Ipinapakita ng halimbawa sa ibaba kung paano gamitin ang pamamaraang ito - 

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

  • browserContext.close () - Ginagamit ang pamamaraang ito upang isara o sirain ang konteksto ng browser. Ang lahat ng mga browser na magagamit sa loob ng konteksto ng browser ay sarado.

browserContext.close ();

  • browserContext.isIncognito () - Ginagamit ang pamamaraang ito upang suriin kung ang browser ay nilikha sa 'incognito' mode o hindi. Nagbabalik ito ng isang halaga ng boolean (totoo - mode na incognito o false - non-incognito mode) batay sa mode ng browser. Bilang default, ang anumang browser ay tinawag sa 'non-incognito' mode.

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Ginagamit ang pamamaraang ito upang lumikha ng isang bagong pahina sa parehong browser.

browserContext.newPage ();

  • browserContext.overridePermissions (pinagmulan, pahintulot) - Ginagamit ang pamamaraang ito upang maibigay ang tinukoy na pahintulot sa pinagmulan, ibig sabihin, ang target na url. Ang iba't ibang mga pahintulot na magagamit upang bigyan ay -
  • 'geolocation'
  • 'midi-sysex' (walang kinalaman sa system na midi)
  • 'midi'
  • 'tulak'
  • 'camera'
  • 'mga abiso'
  • 'mikropono'
  • 'ambient-light-sensor'
  • 'accelerometer'
  • 'background-sync'
  • 'gyroscope'
  • 'mga accessibility-event'
  • 'basahin ang clipboard'
  • 'magnetometer'
  • 'clipboard-write'
  • 'handler ng bayad'

Ipinapakita ng halimbawa sa ibaba kung paano magbigay ng pahintulot -

Const browserContext = browser.defaultBrowserContext ();
naghihintay sa browserContext.overridePermissions ('https://www.google.com', ['geolocation']);

  • browserContext.pages () - Ibinabalik ng pamamaraang ito ang listahan ng lahat ng mga bukas na pahina na magagamit sa konteksto ng browser. Anumang pahina na hindi nakikita ay hindi maililista dito.

Const openPageList = browserContext.pages ();

  • browserContext.targets () - Ibinabalik ng pamamaraang ito ang listahan ng lahat ng mga aktibong target na magagamit sa konteksto ng browser. Anumang pahina na hindi nakikita ay hindi maililista dito.

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget (panaguri [, mga pagpipilian]) - Ginagamit ang pamamaraang ito upang maghintay para sa isang target na lumitaw at ibinalik ang target na bagay. Ang argumento, 'panaguri' ay karaniwang isang tawag sa pag-andar para sa bawat isa sa mga target. Gayundin, opsyonal, maaari naming ipasa ang ilang mga halaga ng pagsasaayos tulad ng pag-timeout bilang pangalawang argument.
await pageChrome.evaluate(() => window.open('https://www.google.com/'));
const newWindowTarget = await browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Sanggunian: I-click ang dito upang mabasa ang higit pa sa mga kaganapan at pamamaraan ng klase ng BrowserContext.

Paghihinuha:

Sa tutorial na "Puppeteer Browser Class" na ito, ipinaliwanag namin ang klase ng BrowserFetcher, klase ng BrowserContext, at klase ng Browser na may kasamang mga mahahalagang namespace (kung mayroon man), mga kaganapan (kung mayroon man), at mga pamamaraan na madalas na ginagamit sa mga diskarte sa pag-scrap ng web ng Puppeteer na may mga halimbawa. Sa susunod na artikulo, ipapaliwanag namin ang klase ng Pahina, Frame, at Dialog.

Tungkol kay K Mondal

Puppeteer Browser Class - Isang Mahusay na Gabay sa Pag-aaral ng Puppeteer Tutorial 8Kumusta, ako si K. Mondal, naiugnay ako sa isang nangungunang samahan. Mayroon akong 12+ taon na karanasan sa pagtatrabaho sa mga domain hal, pag-unlad ng application, pagsubok sa automation, IT Consultant. Lubhang interesado akong matuto ng iba't ibang mga teknolohiya. Narito ako upang matupad ang aking hangarin at kasalukuyang nagbibigay ng kontribusyon bilang isang May-akda at Developer ng Website kapwa sa LambdaGeeks.
Kumonekta sa LinkedIn- https://www.linkedin.com/in/kumaresh-mondal/

Mag-iwan ng komento

Ang iyong email address ay hindi ilalathala. Ang mga kailangang field ay may markang *

en English
X