node.jsのpuppeteerモジュールの練習で、複数のURLのスクリーンショットを保存していくようなコードを書いているのですが、ブラウザを起動するためのpuppeteer.launch()
がとても遅いので、並列で行いたいのですが、nodeでのやり方がわかりません。
javascript
1const pp = require("puppeteer"); 2const uuid = require("node-uuid"); 3 4const urls = [ 5 "url0", 6 "url1", 7 "url2" 8] 9 10async function getScreenshot(url) { 11 const browser = await pp.launch(); 12 let page = await browser.newPage(); 13 await page.goto(url); 14 await page.screenshot({ 15 path: `${uuid.v4()}.png`, 16 fullpage: true 17 }); 18 browser.close(); 19} 20 21(async () => { 22 for (let url of urls) { 23 await getScreenshot(url); 24 } 25})();
上記のコードだと順次処理です。
node.jsの特徴としてシングルスレッドが紹介されている記事をよく見るので、並列化はできないのでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー