
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.
