Есть API, есть логи этого API. Появилась необходимость эти логи как-то анализировать и хотелось бы, чтобы итоговые цифры были близки к количеству реальных посетителей.
Известных ботов (Яндекс, Гугл, Бинг, Мэйл.ру) отсечь удалось легко - обратным DNS-запросом определяем кому принадлежит IP и фильтруем по маске (например у гугла адреса заканчиваются на googlebot.com).
А вот как быть с менее известными ботами, которых, как показывает статистика, тоже немало - неясно.
Есть мысли, как исходя из данных <дата-время> - вычислить бота?
Я бы предположил, что у ботов практически детерминированная логика запроса URL - вы будете видеть с одного IP всегда одинаковую последовательность операций. Создайте справочник наборов последовательностей, которые будете расценивать как заход бота.
Хорошая идея. Пока два варианта сценария по логам определил, уже 20 ip по ним отловились. Ещё заметил пару ip, которые стараются рандомизировать запросы.