Вопрос по отлову бота-индексатора через РНР

Fallout_27
На сайте с 21.01.2006
Offline
139
633

Ситуация следующая: необходимо вести учет захода робота-индексатора Яндекса на сайт, причем вариант просмотра логов не подходит.

Можно ли как-либо реализовать подобный процесс какой-нибудь функцией PHP, которая бы фиксировала приход бота?

Грубо говоря, я ставлю у себя в коде страницы данную фичу, и когда бот-индексатор Яндекса приходит на эту страницу, то мне отдается значение времени его прихода в виде $bot_time. Возможно ли такое?

P.S. Сорри, если коряво написал - я не программист. :)

Кирилл Курек. Дизайн сайтов, Flash-анимация, разработка сайтов «под ключ» (http://www.kurek.ru)
Shtogrin
На сайте с 02.11.2006
Offline
95
#1

Если по быстрому, без блокировок... Пишем в файл path_to_my_log - дату, адрес, название робота, адрес страницы. PHP5

if(strpos($_SERVER['HTTP_USER_AGENT'],'Google')!==FALSE

|| strpos($_SERVER['HTTP_USER_AGENT'],'Yandex')!==FALSE)
file_put_contents('path_to_my_log',
date('Y-m-d H-i-s')."\t".
$_SERVER['REMOTE_ADDR']."\t".
$_SERVER['HTTP_USER_AGENT']."\t".
$_SERVER['REQUEST_URI']."\n",
FILE_APPEND);

или просто дать дату, если не Yandex, то пустая строка

function if_yandex()

{
if(strpos($_SERVER['HTTP_USER_AGENT'],'Yandex')!==FALSE)
return date('Y-m-d H-i-s');
else
return '';
}
www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Fallout_27
На сайте с 21.01.2006
Offline
139
#2

Но, как я понимаю, такая конструкция будет отлавливать и других ботов (например, бота директа)? Реально ли отлавливать именно индексатора?

Shtogrin
На сайте с 02.11.2006
Offline
95
#3

function if_yandex()
{
if($_SERVER['HTTP_USER_AGENT']=='Yandex/1.01.001 (compatible; Win16; I)')
return date('Y-m-d H-i-s');
else
return '';
}

Робот директа "YaDirectBot/1.0 (compatible; Win16; I)", как раз и не учтется, так как не содержит слово "Yandex".

Все роботы Yandex

http://webmaster.yandex.ru/faq.xml?id=502499#user-agent

Fallout_27
На сайте с 21.01.2006
Offline
139
#4

То, что нужно :) Огромное спасибо.

Вопрос вдогонку: если я к каждой странице прикручу данный код, который будет при заходе бота записывать в базу данных время, это не создаст большой нагрузки? Страниц не много, 80-100.

I
На сайте с 29.04.2006
Offline
135
#5

Нормально. Нагрузки особой не будет.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий