I found a lot of use cases for web scraping is kinda ad-hoc and usually, occurs as part of another task (eg. a research project or enhancing a record). I ended up releasing a simple hosted API service called Page.REST ( https://page.rest ) for people who would like to save that extra dev effort and infrastructure cost.
First, it's completely interactive.
Second, it's the browser, so absolutely everything works. It doesn't matter if the data you want is only loaded by an obscure JS function when a hidden form is submitted on a button click. Just find the button, .click() it, and wait for a mutation event.
I have a write up on this[1], but I need to extend it with some more advanced examples.