Puppeteerブラウザクラスの優れた学習ガイド(チュートリアル8)

Puppeteerはオープンソースのノードjsライブラリであり、Web自動化およびWebスクレイピングツールとして使用されます。 Puppeteerの操作を開始するには、Javascriptの基本的な理解とHTMLDOM構造が必要です。 このPuppeteerチュートリアルシリーズは、以下のセグメントで配布されており、Puppeteerでの作業を開始するために必要なすべての経験を身に付けることができます。 

Puppeteerチュートリアル

Toscaチュートリアル#1: パペッティアの概要

Toscaチュートリアル#2: Puppeteer環境変数

Toscaチュートリアル#3: PuppeteerWebスクレイピングとPuppeteerテスト自動化の概要

Toscaチュートリアル#4: Puppeteerをインストールします

Toscaチュートリアル#5: サンプルパペッティアプロジェクト

Toscaチュートリアル#6: Puppeteer自動化テスト

Toscaチュートリアル#7: パペッティアクラス

Toscaチュートリアル#8: Puppeteerブラウザクラス

トスカ チュートリアル #9:パペッティアページクラス

この「PuppeteerBrowserClass」チュートリアルでは、Puppeteer Webスクレイピング技術を使用するために必要な重要な名前空間、イベント、およびその他の網羅的なメソッドで構成される以下のクラスについてさらに深く理解します。  

人形 BrowserFetcherクラス

Puppeteer BrowserFetcherクラスは、さまざまなブラウザバージョンをダウンロードして管理するために使用されます。 BrowserFetcherクラスは、Chromeブラウザのバージョンを指定するリビジョン文字列で動作します。 リビジョン番号はから取得できます (詳細を見る)。。 Firefoxの場合、バージョン番号に基づいてブラウザを毎晩ダウンロードします。

以下の例は、ダウンロードと Chromeブラウザを起動します BrowserFetcherクラスを使用します。

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

BrowserFetcherクラスの別のインスタンスと同時に作業することはできません。 BrowserFetcherクラスの頻繁に使用されるメソッドについては、次のセクションで説明します。

人形 BrowserFetcherクラス–メソッド:

以下のメソッドは、puppeteerbrowserfetcherクラスで使用できます。

browserFetcher.canDownload(リビジョン) –ブラウザーのリビジョン番号を使用して、このメソッドは、ヘッダー要求の一部として指定されたブラウザーの可用性をチェックします。 このメソッドは、可用性に基づいてブール値(trueまたはfalse)を返します。

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

browserFetcher.download(revision [、progressCallback]) –このメソッドは、リビジョン番号引数を使用してChromeブラウザーをダウンロードします。 ここで、progressCallbackは、ダウンロードされたバイトと合計バイトのXNUMXつの引数を使用して関数を呼び出すオプションの引数です。 このメソッドは、リビジョン情報をpromiseオブジェクトとして返します。

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(リビジョン) –このメソッドは、現在の製品/ブラウザーに指定されたリビジョンを削除するために使用されます。 プロセスの完了後に解決されるpromiseオブジェクトを返します。

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

browserFetcher.revisionInfo(revision) –リビジョン、folderPath、executablePath、url、local、productなどのリビジョン情報に関するオブジェクトを返します。

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

参照: 【送信】ボタンをクリックします。販売者は原則としてXNUMX日以内に回答を返信します。XNUMX日を過ぎても回答がない場合は、Artisanaryまでお問い合わせください。 (詳細を見る)。 BrowserFetcherクラスメソッドの詳細については、こちらをご覧ください。

人形 ブラウザクラス

Puppeteer Browserクラスは、puppeteerがを使用してブラウザを起動または接続したときに作成されます。 操り人形師.打ち上げ or 人形遣い 方法。

以下の例は、ブラウザ参照を使用してBrowserクラスとPageを作成する方法を示しています。

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( );})();

次のセクションでは、頻繁に使用されるBrowserクラスのイベントとメソッドについて説明します。

人形 ブラウザクラス–イベント:

以下のイベントはブラウザクラスで利用できます。

  • browser.on( 'disconnected') –このイベントは、ブラウザーが閉じられた/クラッシュしたとき、または browser.disconnect メソッドが呼び出されます.
  • browser.on( 'targetchanged') –このイベントは、ターゲットのURLが変更されたときにトリガーされます。
  • browser.on( 'targetcreated') –このイベントは、メソッドによって新しいタブまたはウィンドウで新しいページが開かれたときにトリガーされます browser.newPage or window.open.
  • browser.on( 'targetdestroyed') –このイベントは、ターゲットが破棄されたとき、つまりページが閉じられたときにトリガーされます。

人形 ブラウザクラス–メソッド:

以下のメソッドはブラウザクラスで利用できます。

  • browser.browserContexts() –すべてのブラウザコンテキストのリストを返します。 新しく起動されたブラウザの場合、このメソッドは単一のBrowserContextインスタンスを返します。
  • browser.close() –この方法は、開いているすべてのクロムブラウザページを閉じるために使用されます。 

browser.close();を待つ

  • browser.createIncognitoBrowserContext() –シークレットブラウザコンテキストを作成/返します。これにより、Cookieやキャッシュが他のブラウザコンテキストと共有されることはありません。 以下の例では、Webページ(google)がシークレットモードで開かれます。

(非同期()=> {
  const chromeBrowser = puppeteer.launch();を待つ
  //新しいシークレットブラウザコンテキストを作成します。
  const context = await chromeBrowser.createIncognitoBrowserContext();
  const pageChrome = await context.newPage();
  pageChrome.goto( 'https://www.google.com');を待つ
})();

  • browser.defaultBrowserContext() –破棄または閉じることができないデフォルトのブラウザコンテキストを返します。
  • browser.disconnect() –ブラウザをパペッティアから切断します。 ただし、この場合、ブラウザは実行されたままになります。
  • browser.isConnected() –このメソッドは、ブラウザーが接続されているかどうかを確認します。 チェックに基づいてブール値を返します。

const boolFlag = await browser.isConnected();

  • browser.newPage() –このメソッドは、新しいページを作成し、ページのインスタンスを返します。

const page = await browser.newPage();

  • browser.pages() –このメソッドは、現在開いている状態にあるすべてのページのリストを返します。

const pageList = await browser.pages();

  • browser.process() –このメソッドは、作成されたブラウザープロセスを返します。 ブラウザがを使用して作成されている場合 browser.connect メソッドであり、null値を返します。
  • browser.target() –このメソッドは、ブラウザーに関連付けられているターゲットを返します。

const target = await browser.target();

  • browser.targets() –ブラウザ内のすべてのアクティブなターゲットのリストを返します。

const targetList = await browser.targets();

  • browser.userAgent() –ブラウザの元のエージェントに関するpromiseオブジェクトを返します。
  • browser.version() –ブラウザのバージョンを 'HeadlessChrome / xxの形式で返します.ヘッドレスクロームの場合はx.xxxx.x '、クローム/ xxの場合は'.非ヘッドレスクロームの場合はx.xxxx.x '。 形式は将来のリリースで変更される可能性があります。
  • browser.waitForTarget(predicate [、options]) –すべてのブラウザコンテキストで検索し、ターゲットを待ちます。

pageChrome.evaluate(()=> window.open( 'https://lambdageeks.com/'));を待つ
const newWindowTarget = await browser.waitForTarget(target => target.url()=== 'https://lambdageeks.com/');

  • browser.wsEndpoint() –ブラウザのWebソケットURLを返します。

const wsUrl = await browser.wsEndPoint();

参照: 【送信】ボタンをクリックします。販売者は原則としてXNUMX日以内に回答を返信します。XNUMX日を過ぎても回答がない場合は、Artisanaryまでお問い合わせください。 (詳細を見る)。 ブラウザクラスのイベントとメソッドの詳細については、こちらをご覧ください。

人形 BrowserContextクラス

BrowserContextクラスは、複数のブラウザーインスタンスを操作するのに役立ちます。 ブラウザインスタンスを起動した後、デフォルトでは、単一のBrowserContextが使用されます。 ザ・ ブラウザクローム。新しいページ() メソッドは、デフォルトのBrowserContextクラスオブジェクトにページを作成します。 Webページが別のページを呼び出す場合、新しいページは親ページのbrowsercontextに属している必要があります。 ここで、新しいページはを使用して作成できます が待 window.open() 方法。 

以下の例では、Puppeteerには「シークレット」モードでブラウザコンテキストを作成する機能があります。 「シークレット」ブラウザコンテキストは、ストレージにデータを書き込みません。

//シークレットブラウザコンテキストの作成constcontextIncognito= await browserChrome.createIncognitoBrowserContext(); //ブラウザコンテキストを介した新しいページの作成。 const pageChrome = await contextIncognito.newPage(); pageChrome.goto('https://www.google.com');を待つ//使用後にコンテキストを閉じますawaitcontextIncognito.close();

BrowserContextクラスの頻繁に使用されるイベントとメソッドについては、次のセクションで説明します。

人形 BrowserContextクラス–イベント:

以下のイベントは、browsercontextクラスで利用できます。

  • browserContext.on(targetchanged) –このイベントは、ブラウザーコンテキスト内のターゲットのURLが変更されたときにトリガーされます。
  • browserContext.on(targetcreated) –このイベントは、ブラウザーコンテキスト内の作成後にトリガーされます。 メソッド window.open 及び browserContext.newPage このイベントの責任者です。
  • browserContext.on( 'targetdestroyed') –このイベントは、ブラウザーコンテキスト内でターゲットが破棄されたときにトリガーされます。

人形 BrowserContextクラス–メソッド:

以下のメソッドは、browsercontextクラスで使用できます。

  • browserContext.browser() –このメソッドは、ブラウザーコンテキスト内で使用可能なブラウザーオブジェクトを返します。
  • browserContext.clearPermissionOverrides() –このメソッドは、ブラウザーコンテキストからすべてのアクセス許可オーバーライドを削除します。 以下の例は、この方法の使用方法を示しています– 

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

  • browserContext.close() –このメソッドは、ブラウザーコンテキストを閉じるか破棄するために使用されます。 ブラウザコンテキスト内で使用可能なすべてのブラウザが閉じられます。

browserContext.close();

  • browserContext.isIncognito() –このメソッドは、ブラウザが「シークレット」モードで作成されているかどうかを確認するために使用されます。 ブラウザモードに基づいてブール値(true –シークレットモードまたはfalse –非シークレットモード)を返します。 デフォルトでは、すべてのブラウザは「非シークレット」モードで呼び出されます。

const boolIsIncognito = browserContext.isIncognito();

  • browserContext.newPage() –このメソッドは、同じbrowsercontextで新しいページを作成するために使用されます。

browserContext.newPage();

  • browserContext.overridePermissions(origin、permission) –このメソッドは、指定されたアクセス許可をオリジン、つまりターゲットURLに付与するために使用されます。 付与できるさまざまな権限は–
  • 「ジオロケーション」
  • 'midi-sysex'(システム専用midi)
  • 'ミディ'
  • '押す'
  • 'カメラ'
  • 「通知」
  • 'マイクロフォン'
  • '周囲光センサー'
  • 「加速度計」
  • 'background-sync'
  • 「ジャイロスコープ」
  • 「アクセシビリティ-イベント」
  • 「クリップボード読み取り」
  • 「磁力計」
  • 「クリップボード書き込み」
  • 「支払いハンドラー」

以下の例は、許可を与える方法を示しています–

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 [、options]) –このメソッドは、ターゲットが表示されてターゲットオブジェクトが返されるのを待つために使用されます。 引数「述語」は、基本的に各ターゲットの関数呼び出しです。 また、オプションで、タイムアウトなどのいくつかの構成値をXNUMX番目の引数として渡すことができます。
pageChrome.evaluate(()=> window.open('https://www.google.com/'));を待つconst newWindowTarget = await browserContext.waitForTarget(target => target.url()==='https://www.google.com/');

参照: 【送信】ボタンをクリックします。販売者は原則としてXNUMX日以内に回答を返信します。XNUMX日を過ぎても回答がない場合は、Artisanaryまでお問い合わせください。 (詳細を見る)。 BrowserContextクラスのイベントとメソッドの詳細を読む。

結論:

この「PuppeteerBrowserClass」チュートリアルでは、BrowserFetcherクラス、BrowserContextクラス、およびBrowserクラスについて説明しました。これらのクラスには、重要な名前空間(存在する場合)、イベント(存在する場合)、およびPuppeteerWebスクレイピング手法で頻繁に使用されるメソッドが含まれています。例。 次の記事では、Page、Frame、Dialogクラスについて説明します。

コメント

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *

上へスクロール