Prerequisite - referrer is set apache level:
LogFormat "%U %{Referer}i %{%Y-%m-%d %H:%M:%S}t" human_log
RewriteRule ^/human/(.*)   /b.gif [L]
SetEnv human_session 0

# using referrer
SetEnvIf Referer "^http://yoursite.com/" human_log_session=1

SetEnvIf Request_URI "^/human/(.*).gif$" human_dolog=1
SetEnvIf human_log_session 0 !human_dolog
CustomLog logs/human-access_log human_log env=human_dolog
In web-page, embed a /human/$hashkey_of_current_url.gif. If is a bot, is unlikely have referrer set (this is a grey area). If hit directly using browser address bar, it will not included. At the end of each day, /human-access_log should contains all the referrer which actually is human page-view. To play safe, hash of the referrer from apache log should tally with the image name

My Notes

Change the url of the gif to a css background image. If it loads this image AND the referer is your site then you have a human.