|
|
|
| Мне нужно узнать, кто посещает страницу - робот или человек? Просто посещает, без ввода каких-либо данных. Как это можно узнать? | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | Некоторые не могут отличить бота от человека и с помощью CAPTCHA, не то что просто так... | |
|
|
|
|
|
|
|
для: BinLaden
(29.07.2008 в 12:11)
| | "Каптча" эта нафиг не нужна.
Знает кто-нибудь ответ? | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:26)
| | да никак не узнать, робот посылает запросы, полностью идентичные запросу броузера | |
|
|
|
|
|
|
|
для: GeorgeIV
(29.07.2008 в 12:28)
| | Но ведь программы статистики отделяют хиты от визитов. Я так понимаю, что визиты - это и есть люди. К примеру, визитов у меня на порядок меньше, чем хитов... | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:53)
| | неправильно, хиты - это уникальные визиты, то есть некто за период может зайти несколько раз на сайт, будет несколько визитов, но один хит( или наоборот, не помню подробности, но с роботами это никак не связано). Есть список поисковых роботов, но это другая песня | |
|
|
|
|
|
|
|
для: GeorgeIV
(29.07.2008 в 12:57)
| | Ммм... А что, если использовать аякс?! Если я правильно понимаю, то робот на него не среагирует, а браузер среагирует. То есть, к примеру, при загрузке страницы в браузер аяксом отправлять РНР-скрипту команду записать в счётчик новую единицу? | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 13:25)
| | да он также среагирует, что простой броузер, что робот, получают одно и тоже. Робот, это тот же броузер по сути. | |
|
|
|
|
|
|
|
для: GeorgeIV
(29.07.2008 в 13:31)
| | А почему тогда говорят, что робот не понимает ява-скрипт и поэтому не индексирует, к примеру, каталог продукции на аяксе? | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 13:34)
| | он не понимает ссылки, которые формируются динамически скриптом.
Я уже мысль потерял, а для чего все это надо? | |
|
|
|
|
|
|
|
для: GeorgeIV
(29.07.2008 в 13:38)
| | Надо, чтобы оценить реальную посещаемость сайта людьми. | |
|
|
|
|
|
|
|
для: GeorgeIV
(29.07.2008 в 13:38)
| | Если робот - тот же браузер, то почему он тогда не понимает динамических ссылок? Браузер-то понимает. Значит, это не одно и то же по сути... | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 13:34)
| | >А почему тогда говорят, что робот не понимает ява-скрипт и поэтому не индексирует, к
>примеру, каталог продукции на аяксе?
Потому, что создать универсального бота-браузер очень сложно, даже для поисковых систем. Однако, создать бота, заточенного под конкретный сайт и конкретные JS-скрипты - очень просто, нет надобности реализации JavaScript-интерпретатора. Проблема поисковых систем в том, что они парсят не один сайт, а весь Интернет. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2008 в 14:58)
| | То есть мысль моя со статистикой верна, если только специально под мой сайт не начнут писать роботов. | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 21:25)
| | А зачем заниматься велосипедами если можно это дело отдать тому же liveinternetу или гугловой аналитике, а самому заняться более нужным делом.
Это отличные инструменты и сами вы вряд ли точнее напишите. | |
|
|
|
|
|
|
|
для: Axxil
(29.07.2008 в 21:31)
| | Логично. Я про них не знал просто, пока вы не сказали. Займусь этим... И что: они отслеживают именно живых посетителей? | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 21:35)
| | > И что: они отслеживают именно живых посетителей?
ну может пару процентов зомберов проскакивает. :)
А так, зарегистрируйтесь на гугле и я вам гарантирую культурный шок от обилия вариантов учёта :) | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 13:25)
| | в браузере могут быть скрипты отключены. | |
|
|
|
|
|
|
|
для: Axxil
(29.07.2008 в 13:40)
| | В сети пишут, что по статистике ява-скрипт отключён только у 5% пользователей. | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 13:53)
| | Сейчас, в принципе, да.
Так что способ вполне жиснеспособный. | |
|
|
|
|
|
|
|
для: Axxil
(29.07.2008 в 14:00)
| | Какой способ? Что я предложил - с аяксом? | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 14:12)
| | Да.
Только если страница будет слишком тяжёлая, то пользователь может не дождаться их загрузки, пойти далее, и не отметиться. Особенно если скрипты загружаются в последнюю очередь (что, собственно, предпочтительнее в плане оптимизации загрузки страницы) | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | У каждого посетителя есть заголовок user-agent. Просто надо найти максимально полный список юзер-агентов браузеров и сделать по нему проверку. | |
|
|
|
|
|
|
|
для: Axxil
(29.07.2008 в 13:40)
| | я как робот могу прописать любой юзер-агент | |
|
|
|
|
|
|
|
для: GeorgeIV
(29.07.2008 в 13:44)
| | Агента подделывают только спам роботы. Да и то они скорее скроются под агентом какого-нибудь поисковика. Да и их число в общем потоке не так велико. | |
|
|
|
|
|
|
|
для: Axxil
(29.07.2008 в 13:59)
| | > Агента подделывают только спам роботы
У тех же поисковиков есть специальные боты, которые маскируются под самых обычных пользователей. Это необходимо для борьбы клоакингом. | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | Анонимность посетителей и возможность создания интелектуальных агентов заложены в основы протокола HTTP. Принципиально задача не решается. Можно хитрить, но решить проблему окончательно не выйдет. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2008 в 14:55)
| | Ну какая анонимность, если всякие интернет-террористы и хулиганы вычисляются мусорами за одни сутки??? | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 15:59)
| | только очень тупые или очень пива откушавшие | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 15:59)
| | только очень тупые или очень пива откушавшие | |
|
|
|
|
|
|
|
для: GeorgeIV
(29.07.2008 в 16:00)
| | Ну это спорное утверждение, я так думаю. | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 15:59)
| | За этих звездочки дают, за обычного бота ничего не дадут. Да и ботов очень много и создаются они очень быстро. Допустим хожу я на ваш сайт из под своей машины, а потом пишу бота, который тоже из под моей машины ходит - как вы нас отличите, если и он и я будем отправлять одни и те же HTTP-заголовки? Проблема в том, что на ботов проще и дешевле внимания не обращать, чем обращать, а если бороться, то ассиметричными методами. | |
|
|
|
|
|
|
|
для: cheops
(30.07.2008 в 14:31)
| | Я не знаю, я не умею писать ботов и плохо разбираюсь в заголовках, но если вы сможете написать бота, который программно имитирует движение мышью, тогда конечно...
Начинаем повторяться: если никто конкретно под мой скрипт не будет писать робота, то я могу его (скрипт) с успехом использовать для поставленной задачи. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 15:06)
| | Да, это так, ботов обмануть не так сложно, особенно универсальных, расчитанных на общий случай. | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | +1 невозможно, ждава скрипты гугл например читает,
но если бы можно было отследить движение мыши, есть движение значит человек
иначе бот | |
|
|
|
|
|
|
|
для: Расшифровка
(30.07.2008 в 07:24)
| | Движение мыши отследить не проблема. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 09:13)
| | coloboc66, заинтриговали
интересно было бы посмотреть на реализацию | |
|
|
|
|
|
|
|
для: Расшифровка
(30.07.2008 в 09:41)
| |
<html>
<head>
<script>
function ahtung(){
document.write('alarma! Live user!');
}
</script>
</head>
<body onmousemove="ahtung()">
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: Axxil
(30.07.2008 в 09:58)
| | а если я просто просматриваю страницы, ничего на них не делая, я что, робот? | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 10:03)
| | Но мышью-то вы всё-равно двинете?
Сейчас подумаю над реализацией, подправите меня, кому интересно? | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 10:20)
| | да не факт, что над страницей, уменя в избранном полно и я там могу все прощелкать | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 10:31)
| | До избранного тоже нужно мышью добраться. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 10:32)
| | так событие от мыши вощзникает ТОЛЬКО ЕСЛИ МЫШЬЮ ВЕСТИ НАД СТРАНИЦЕЙ. Избранное к странице не относится | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 10:35)
| | Нет: есть события мыши, которые реагируют на уход со страницы в панель инструментов. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 10:53)
| | ты понять не можешь - я вообще никогда могу не зайти мышью на страницу и тем не менее просмотреть десяток их, щелкая только по панели броузера | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 12:22)
| | Нет, я понял. Но обычный человек ВСЕГДА водит мышью по странице. Конечно, он может принципиально этого не делать, но это уже совсем другое дело. Таких мало. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 10:20)
| | Не надо ждать пока кто-то двинет мышью.
Просто по окончанию загрузки скриптов можно сразу отправлять посредством аякса запрос на сервер +1 | |
|
|
|
|
|
|
|
для: Axxil
(30.07.2008 в 10:39)
| | Вопрос движения мыши возник из-за того, что тут утверждают, что роботы читают ява-скрипты. То есть мышью робот всё-равно не двинет... | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 10:51)
| | роботы может и читают, но точно не выполняют скрипты. Если робот сможет выполнить скрипт, то двинуть мышкой для него будет проще простого. | |
|
|
|
|
|
|
|
для: Axxil
(30.07.2008 в 11:23)
| | Вот в общем реализация на аяксе Котерова:
test.php
<?php
$f_counter='counter_rus.dat';// имя файла
?>
<body onload='doLoad("<?=$f_counter;?>")'>
<!--
<body onmouseover='func();window.status="Мыша вышла из боди."' onmousemove='func();window.status="Мышы двигаться команды не было."'onmouseout='func();window.status="Мышь вошла в боди"'>
-->
<script language="JavaScript" src="js/ajax/lib/JsHttpRequest/JsHttpRequest.js"></script>
<script type="text/javascript" language="JavaScript">
var mouse=0;
function func()
{
mouse=mouse+1;
if(mouse>1)return;
doLoad("<?=$f_counter;?>");
}
function doLoad(value) {
var req = new JsHttpRequest();// Create new JsHttpRequest object.
req.onreadystatechange = function() {
if (req.readyState == 4) {
document.getElementById('result').innerHTML='';
document.getElementById('result').innerHTML='Количество посещений: '+req.responseJS.res1;
//document.getElementById('debug').innerHTML = req.responseText;// Write debug information too (output becomes responseText)
}
}
req.open(null, 'counter.php', true);
req.send( { q: value } );
}
</script>
<div id="result" style="background-color:red"></div>
</body>
|
counter.php
<?php
require_once "js/ajax/lib/JsHttpRequest/JsHttpRequest.php";
$JsHttpRequest =& new JsHttpRequest("windows-1251");
$f_counter=@$_REQUEST['q'];
if(!file_exists($f_counter))
{
@$fp=fopen($file_name,'w');
chmod($file_name, 0666);
fwrite($fp,'0');
fclose($fp);
}
$str_arr=file($f_counter);
$count=$str_arr[0]+1;
$GLOBALS['_RESULT'] = array(
"q" => @$_REQUEST['q'],
"res" => trim(@$_REQUEST['q']),
"res1" => $count
);
print_r ($_REQUEST, 2);
@$fp=fopen($f_counter,'w');
fwrite($fp,$count);
fclose($fp);
?>
|
| |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 11:46)
| | coloboc66
большое спасибо за скрипт,
сделаю тест отпишусь, | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | Лучший способ: генерить вопросы типа "Сколько у собаки лап ?" | |
|
|
|
|
|
|
|
для: DDK
(30.07.2008 в 15:09)
| | человеку нужно не отсеивать ботов при регистрации, а различать посетителей страницы, лапы тут не прокатывают | |
|
|
|
|
|
|
|
для: DDK
(30.07.2008 в 15:09)
| | Это я уже давно понял. А "капчи" не нужны. | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | Никаким способом вы не отличите человека от бота. Да и зачем вам это? | |
|
|
|
|
|
|
|
для: mihdan
(30.07.2008 в 15:16)
| | Ну вот скрипт я написал. Как его испытать? У кого есть робот? | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 15:30)
| | адрес свой скажи | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 15:32)
| | Скрипт вообще-то выше расписан. Или мне нужно поместить его на хостинг? | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 15:55)
| | а как иначе ты его испытаешь?
ставь на сервер, фиксируй адреса, откдуа пришли и пытайся определить, робот был или чел, а потом сравним.
А мы будем тебя обманывать :-) | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 16:05)
| | "...фиксируй адреса, откдуа пришли и пытайся определить, робот был или чел,..." - для чего мне фиксировать адреса, я ж всё-равно не стану разбираться в их происхождении? Вы же видели мой скрипт, там принцип таков, что если происходит событие body onload, то это не робот, и всё. Ну или я могу установить события на движение мыши. А если мой счётчик всё-таки зафиксирует робота, то я этого не пойму. А как понять по адресу, робот это или нет? | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 16:12)
| | Вы же не событие на сервер отправляете, а значение. Что роботу это сделать сложно? | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 16:12)
| | просто я попрошу сравнить, сколько с моего адреса людей пришло, а сколько работов | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 16:42)
| | Давай лучше так: мой скрипт будет писать на загруженной странице "Это человек" или "Это робот" в зависимости от того, кто на неё зашёл? Если ты в режиме он-лайн зайдёшь на страницу сам или роботом, то определишь ведь, правильно скрипт работает, или нет. А то нужно весь скрипт переделывать... | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 17:00)
| | ну давай так для начала попробуем | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 17:07)
| | Только уговор: не обманывать на словах и не программировать робота специально под мой скрипт. Хорошо?
http://berestye.com/tests/test.php | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 17:23)
| | хорошо
У меня такое ощущение, что роботы вообще у тебя не определяются, кликаю с броузера, потом с проги, потом опять с броузера, клик с проги никак не фиксируется. Или у тебя кол-во пришедших ботов не выводится? | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 17:25)
| | Не выводится. Выводятся только люди. Смотел 2 минуты назад: в файле было 28.
Если заходишь с проги, то сообщение на белом фоне, а если броузером, то на красном. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 17:39)
| | лучше бы текстом выводить, я с проги не понимаю, каким цветом отвечает
что то я по коду не вижу, чтобы цвет менялся, он всегда будет красным | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.07.2008 в 17:46)
| | Если робот, то на белом фоне пишет: "It is a robot", а если браузер, то на красном фоне пишет: "It is a people" и количество.. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 17:50)
| | Я тебя дезинформировал - забыл, что работаю с аяксом. В общем - при заходе с робота вообще ничего на странице не должно меняться, а при заходе с броузера - должно меняться только число. Завтра продолжим, если у тебя будет желание, а то мне нужно выключаться. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 15:30)
| | Давайте я буду роботом. :) | |
|
|
|
|
|
|
|
для: Trianon
(30.07.2008 в 15:55)
| | Нет, здесь нужно наоборот: чтобы робот захотел стать человеком. | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 16:03)
| | Обязательно запрашивать фото, образец почерка и отпечатки пальцев. Только так. | |
|
|
|
|
|
|
|
для: sim5
(30.07.2008 в 16:17)
| | И размер сапог... | |
|
|
|
|
|
|
|
для: coloboc66
(30.07.2008 в 17:58)
| | Можно и их.) Уже выпущен сенсорный экран, о какой мышке тогда можно говорить?) Успехов конечно, но... | |
|
|
|
|
|
|
|
для: sim5
(30.07.2008 в 18:11)
| | А что экран? Роботу не нужен ни монитор, ни экран, ни мышь... | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | А если onload показывать див на весь экран, на нем кнопка "Добро пожаловать", при нажитии на которую идет подсчет и див скрывается | |
|
|
|
|
|
|
|
для: Roma
(30.07.2008 в 16:57)
| | Ну вот посмотрел вчерашнюю статистику: webalizer показывает 334 хита, а у меня в файле записано 126... | |
|
|
|
|
|
|
|
для: coloboc66
(31.07.2008 в 09:27)
| | Значит остальные были от бота, а ботом был в том числе и я :-) | |
|
|
|
|
|
|
|
для: GeorgeIV
(31.07.2008 в 10:04)
| | Ну так значит работает скрипт правильно? | |
|
|
|
|
|
|
|
для: coloboc66
(31.07.2008 в 10:18)
| | не уверен, но пока некогда этим глубоко заниматься, отложим на недельку, дел до хрена накопилось :-( | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | ммм... а если сделать так,
в начале разметки, странички сделать ссылку на авторизацию, но сделать недоступной для обычных юзеров. т.е. под цвет фона, очень мелкий шрифт или еще что придумать...
И сделать для обычных пользователей... робот зайдет по первой... тем самым сдаст себя, можно будет его как то пометит, через сессии или куки..
Еще можно не сразу открывать главную, а через переадресацию (разметка)
Но на этой промежуточной страничке тоже сделать ссылке недоступной для обычного юзера… юзер подождет переадресацию, а робот кликнит ссылку…
Или раз человеку нужен экран, а роботу нет.
То можно аяксом отправить какие нибудь данные о экране...
Хотя не знаю… это лишь мои варианты, будут ли они работать - не знаю…. | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | coloboc66,
+5 | |
|
|
|
|
|
|
|
для: Расшифровка
(05.08.2008 в 13:07)
| | > coloboc66 (29.07.2008 в 12:07)
> Мне нужно узнать, кто посещает страницу - робот или человек? Просто посещает, без ввода каких-либо данных. Как это можно узнать?
> Расшифровка (05.08.2008 в 13:07)
> to: coloboc66 (29.07.2008 в 12:07)
> coloboc66,
> +5
За вопрос "+5"? :)) | |
|
|
|
|
|
|
|
для: BinLaden
(05.08.2008 в 13:25)
| | за хороший скрипт)) внимательно вчитываемся | |
|
|
|
|
|
|
|
для: coloboc66
(29.07.2008 в 12:07)
| | Я делал примерно так...
В страницу, которая генерица php, вставляется код типа
<script type="text/javascript" src="script.js?code=LP5Hif5wLHog8jPggRcDgHvR7e70DeX"></script>
|
Где вот эта хрень "LP5Hif5wLHog8jPggRcDgHvR7e70DeX" заносится в базу данных, еще при генерации php скриптом, а файл script.js это php файл который делает выборку из базы по этому значению, после чего смотрит на интервал времени, если более n секунд/минут/часов то это бот...
Ботов, типа GoogleBot, YahooSlurp и им подобным, отсеивал... | |
|
|
|
|
|
|
|
для: pina
(06.08.2008 в 00:29)
| | pina, а можно поподробнее,
что означает и как генерится и при каких условиях "LP5Hif5wLHog8jPggRcDgHvR7e70DeX"
и про выборку из базы, и время,
спасибо | |
|
|
|