This is good, but it’s much better to place those block rules at a proxy server level (like Cloudflare) instead of in the .htaccess file because, with .htacess, your host server still gets hit directly with the query before it gets blocked. So better the proxy server takes the hit instead. And if there are a lot of these queries, and you are on a shared server with limited resources, then it could still potentially slow things down on your site.
I do block some things with .htaccess in case they somehow get through the proxy server, but .htaccess is only meant to work as a secondary backup firewall on our site.
Another thing to even avoid having to list out these user agents, if you are using Cloudflare, is to setup a firewall rule to allow “known bots” and then block all other bots. TBH, we really only want Google and Bing on our site anyway. And we also just block China on Cloudflare as a country too. I know not everyone will want to block China on their site, but a lot of traffic from China can be malicious and we have never had any useful traffic from China anyway, so it seems like no loss.