
💡 If you are not familiar with how child process work in Node I highly encourage you to give this article a read. We can combine the child process module with our Puppeteer script and download files in parallel. Child process is how Node.js handles parallel programming.

We can fork multiple child_proces in Node. Our CPU cores can run multiple processes at the same time. 💡 Learn more about the single threaded architecture of node here Therefore if we have to download 10 files each 1 gigabyte in size and each requiring about 3 mins to download then with a single process we will have to wait for 10 x 3 = 30 minutes for the task to finish. It can only execute one process at a time. You see Node.js in its core is a single-threaded system. However, if you have to download multiple large files things start to get complicated. In this next part, we will dive deep into some of the advanced concepts. Puppeteer creates its own browser user profile which it cleans up on every run.Const browser = await puppeteer. This article describes some differences for Linux users. See this article for a description of the differences between Chromium and Chrome.

See Puppeteer.launch() for more information. You can also use Puppeteer with Firefox Nightly (experimental support). const puppeteer = require ( 'puppeteer' ) Ĭonst browser = await puppeteer. You create an instance of Browser, open pages, and then manipulate them with Puppeteer's API.Įxample: navigating to and saving a screenshot as example.png: Puppeteer will be familiar to people using other browser testing frameworks. All examples below use async/await which is only supported in Node v7.6.0 or greater. Starting from v3.0.0 Puppeteer starts to rely on Node 10.18.1+.

Prior to v1.18.1, Puppeteer required at least Node v6.4.0.
