
デノで走る操り人形師のフォーク。
Puppeteerは、DevToolsプロトコルで毎晩Chrome、Chromium、またはFirefoxを制御するための高レベルAPIを提供するライブラリです。 Puppeteerはデフォルトではヘッドレスを実行しますが、フル(ヘッドレスではない)クロムまたはクロムを実行するように構成できます。
ブラウザで手動でできることのほとんどは、操り人形師を使用して実行できます!ここにあなたを始めるためのいくつかの例があります:
操り人形を使用するには、そうするようにインポートします:
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;Puppeteerは、ChromiumまたはFirefoxの最近のバージョンを毎晩使用できますが、このバージョンのPuppeteerは特定のバージョンに対してのみ検証されています。これらのバージョンをPuppeteerキャッシュでキャッシュするには、以下のコマンドを実行します。
PUPPETEER_PRODUCT=chrome deno run -A --unstable https://deno.land/x/[email protected]/install.ts
PUPPETEER_PRODUCT=firefox deno run -A --unstable https://deno.land/x/[email protected]/install.tsサポートされているすべての環境変数を見つけることができ、操り人形師ドキュメントにインストールをカスタマイズできます。
操り人形師は、他のブラウザテストフレームワークを使用している人に馴染みがあります。 Browser 、オープンページのインスタンスを作成し、操り人形師のAPIで操作します。
例- https://example.comに移動し、 example.pngとしてスクリーンショットを保存します:
example.jsとしてファイルを保存します
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;
const browser = await puppeteer . launch ( ) ;
const page = await browser . newPage ( ) ;
await page . goto ( "https://example.com" ) ;
await page . screenshot ( { path : "example.png" } ) ;
await browser . close ( ) ;コマンドラインでスクリプトを実行します
deno run -A --unstable example.js Puppeteerは、初期ページサイズを800×600pxに設定し、スクリーンショットサイズを定義します。ページサイズはPage.setViewport()でカスタマイズできます。
例-PDFを作成します。
hn.jsとしてファイルを保存します
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;
const browser = await puppeteer . launch ( ) ;
const page = await browser . newPage ( ) ;
await page . goto ( "https://news.ycombinator.com" , {
waitUntil : "networkidle2" ,
} ) ;
await page . pdf ( { path : "hn.pdf" , format : "A4" } ) ;
await browser . close ( ) ;コマンドラインでスクリプトを実行します
deno run -A --unstable hn.js PDFSの作成の詳細についてはPage.pdf()を参照してください。
例- ページのコンテキストでスクリプトを評価する
get-dimensions.jsとしてファイルを保存します
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;
const browser = await puppeteer . launch ( ) ;
const page = await browser . newPage ( ) ;
await page . goto ( "https://example.com" ) ;
// Get the "viewport" of the page, as reported by the page.
const dimensions = await page . evaluate ( ( ) => {
return {
width : document . documentElement . clientWidth ,
height : document . documentElement . clientHeight ,
deviceScaleFactor : window . devicePixelRatio ,
} ;
} ) ;
console . log ( "Dimensions:" , dimensions ) ;
await browser . close ( ) ;コマンドラインでスクリプトを実行します
deno run -A --unstable get-dimensions.js deno-puppeteer Denoと互換性のあるものにするためのいくつかの小さな変更を除いて、通常のバージョンの操り人形師を効果的に実行します。
最も顕著な違いは、ノードBufferを採取 /返す方法の代わりに、 Uint8Array取得 /返却する可能性が高いことです。また、1つのメソッドは、ノードReadableではなく、WebネイティブのReadableStream返します。
これ以外に、https://pptr.devのドキュメントが一般的に適用されます。
このリポジトリには、DockerFileの例があります。必要なすべての依存関係をインストールし、./examples/docker.jsを実行する方法を示します。
それはただオフポイントをジャンプすることを意味します - あなたが望むようにそれをカスタマイズしてください。