My experience with Puppeteer is primarily using it for web scraping. I first became interested in using it when I wanted to automate some tasks at work. These tasks required some interaction with websites so I started looking into how I could potentially do that.

A lot of people dote on Python's ability to automate simple tasks, so I started there with Python and Selenium. While this worked okay and there were definitely aspects of it I appreciated, I began to find out that much of its capabilities are somewhat limited. So I switched over to Node.js and installed Puppeteer.

Performing the basic operations that I needed for work was easy with Puppeteer - it was just a matter of parsing the data into a format that I could use. I started getting fairly advanced with my use cases and even paired it together with ExcelJS to generate Excel documents of the data I had been scraping. Mind you - this was data that my company's R&A department should have been able to format and provide for me, but I can never get them to follow through with any requests - so I just parsed the data out of the company intranet sites on my own.

My next experience with Puppeteer was in developing an application for fun with another developer in my Codesmith cohort. We had the idea of using headless browsing to emulate a music player in a CLI.

So we set off on developing this project which required a lot of Puppeteer code to headlessly browse YouTube Music's website and perform actions such as play, pause, skip, change the volume, and search for songs. We were then able to connect this functionality up to the CLI using Ink (React for the command line).