Тоже как-то задавался подобным вопросом:
Как решить проблему отсекания ботов в статистике?
У меня ситуация осложнялась тем, что user-agent неизвестен, только ip.
Сделав 2 сценария, удалось отфильтровать большинство ботов, но, как мне кажется, получилась немалая доля ложных срабатываний. Вообще, пока эту тему решил отложить.