Yeah, there are a lot of bad ones out there. The best way I know is through networking. Chances are that someone in your network has worked with a good recruiter; or worked with someone they liked who was incidentally hired through a recruiter.
If you're sifting through recruiter spam, pay attention to which ones are talking about opportunities that are relevant to you and why. I keep an email folder just for messages from recruiters - it helps me keep a pulse on what people are looking for. And if I do start looking it becomes a) a well of potential recruiters to work with, and b) a training set for my own neural network (aka brain) to work out how the best and worst are communicating.
Let's take a look at this month's spam so far. I'm a full stack developer slash engineering manager in NYC with almost 20 years of experience in web development mostly in PHP and Python. The recruiter who just sent me a mid-level front-end opening is toast. So is the one who sent me a senior opening on .Net. And the one who sent an opening in Cincinnati. And the one who asked me to send HIM names of good candidates for his opening.
The one who sent me an opening similar to what I'm doing now, but with a 50% pay raise might get an email back if I happen to be looking. So might the one who sent me a VPE opening. Both personalized their messages to reflect specific details of my profile - which means they actually read it and didn't just mail merge me into a spray-and-pray mailing. And they're not just trying to fill an opening with a body who matches qualifications but also putting consideration into how the candidate might want to advance in their own careers.
After speaking further with them, I may or may not end up working with either. I already have a recruiter I like who found my current position, and working with more than one recruiter at a time if you're already working full time gets to be exhausting. (Heck, juggling 3 or 4 when you're between jobs can be a full time job if they've got robust pipelines.)
Make a practice of taking the occasional personal day / mental health day even when happily employed and not looking.