I feel like all I need is a good script to filter out bots and spiders. I could take the rest from there.
One of the signals is from various JS properties though (navigator.webdriver, window._phantom), so you'll miss out on that. I have some other ideas as well.
Either way, it's better than nothing?