Попробуйте этот скрипт.
<script type="text/javascript">
var date=new Date(),
sec=date.getSeconds();
var pr=prompt(sec, 'Введите число написанное выше');
if (sec != pr) { document.write('Вы неправильно ввели число. Возможно вы робот. Нажмите F5 для второй попытки.');
}
</script>
Берётся случайное число в виде секунды и показывается пользователю. Если он его правильно ввёл страница показывается, если нет, то пользователю пишется, что возможно он робот. Есть только единственный минус, что скрипт берёт время с локального компьютера, и робот может легко вычислить это число.