
You’ll also need some packages that may or may not be available on your system. You can install it here, or if you are CLI lover like me and like to work on Ubuntu, follow those commands: curl -sL | sudo -E bash. It’s maintained by the Chrome DevTools team and an awesome open-source community.Įnough talking-let’s jump into the code and explore the world of how to automate web scraping using Puppeteer’s headless browsing! Preparing the Environmentįirst of all, you’ll need to have Node.js 8+ installed on your machine. What exactly is Puppeteer? It’s a Node.js library which provides a high-level API to control headless Chrome or Chromium or to interact with the DevTools protocol. Editor’s note: It’s worth mentioning Intoli’s Remote Browser, another new player, but that will have to be a subject for another article. But today we’ll be exploring headless Chrome via Puppeteer, as it’s a relatively newer player, released at the start of 2018. There are many web scraping tools that can be used for headless browsing, like Zombie.js or headless Firefox using Selenium. Instead of interacting with visual elements the way you normally would-for example with a mouse or touch device-you automate use cases with a command-line interface (CLI). Headless? Excuse me? Yes, this just means there’s no graphical user interface (GUI). Now, what if we could leverage this functionality for our scraping needs and had a way to control browsers programmatically? That’s exactly where headless browser automation steps in!

Now, this is a problem if we are doing some kind of web scraping or web automation because more times than not, the content that we’d like to see or scrape is actually rendered by JavaScript code and is not accessible from the raw HTML response that the server delivers.Īs we mentioned above, browsers do know how to process the JavaScript and render beautiful web pages. The server returns JavaScript files or scripts injected into an HTML response, and the browser processes it. In other words, nowadays JavaScript rules the web, including almost everything you interact with on websites.įor our purposes, JavaScript is a client-side language.

Now there are much more interactive web apps with beautiful UIs, which are often built with frameworks such as Angular or React. The last few years have seen the web evolve from simplistic websites built with bare HTML and CSS. What Is a Headless Browser and Why Is It Needed?

In this article, we’ll see how easy it is to perform web scraping (web automation) with the somewhat non-traditional method of using a headless browser.
