This was pretty much my experience as well: had to build a small scraper 2 years ago to alert me whenever spots for camping became available in Yosemite. Bear in mind that this was around 3-4 months in advance. Just for the sake of it I let it run after we had the spots, to understand how many people cancelled, and the amount of cancellations are actually insane.
While I don't think my approach was too harsh (I wasn't constantly querying nor booking automatically), it could be solved if they provided their own alert system, or discourage the book-cancel behaviour (higher cancel fees? Might not make much sense since the camping itself is pretty cheap...)
The alternative of manually checking every day would have likely resulted in never getting a spot. I was using my skills to hack together a solution for myself in a crappy situation.