«Имя бота» — собственно имя поискового робота.
«Время и Дату» — время когда зашел поисковой робот.
Доброго времени суток, хочу вам предоставить небольшой скрипт для вычисления поисковых систем на PHP, которые заходят на сайт. Может опознавать многих роботов, посмотрев на скрипт вы поймёте каких.
Суть в чем — когда поисковой робот заходит на сайт, скрипт определяет его по юзер-агенту и далее пишет в лог файл:
вот вообще то и всё, очень удобная вещь, всегда интересно посмотреть как часто заходит на ваш любимый сайт поисковой робот.
Собственно сам скрипт:
<?PHP $bot = 'Unknown'; if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')){ $bot='YandexBot';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'YandexDirect')){ $bot='Yandex Direct';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Googlebot';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Google')){$bot='Google';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners-Google')){$bot='Mediapartners-Google (Adsense)';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Slurp')){$bot='Hot Bot search';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebCrawler')){$bot='WebCrawler search';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ZyBorg')){$bot='Wisenut search';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'scooter')){$bot='AltaVista';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'StackRambler')){$bot='Rambler';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Aport')){$bot='Aport';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'lycos')){$bot='Lycos';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yahoo')){$bot='Yahoo';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebAlta')){$bot='WebAlta';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'yahoo')){$bot='Yahoo';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'msnbot')){$bot='msnbot/1.0';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ia_archiver')){$bot='Alexa search engine';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'FAST')){$bot='AllTheWeb';} if($bot != 'Unknown') { $dt=date('Y-m-d [H:i:s]'); // получение текущего времени $fp = fopen('log.html',a); // получаем дескриптор открытого файла fwrite($fp,'< br>'.$bot.' | '.$dt); // пишем в лог-файл наши данные fclose($fp); // закрываем дескриптор } ?
-
gloys Говорит:
25.03.2012 at 7:11 пп
Собственно достаточно прописать этот в код в файл index.php, если говорить про сайт в целом, или на ту страницу- на которую хотелось бы узнать, захолит ли поисковик или нет. К слову, лучше писать логи не в log.html а в какой нибудь «kjdhgfjdhsfhgsdfg.html», в противном случае вполне реально залить на сайт шел, передавая в юзер-агенте специально сформированный код. Или как вариант писать не в html а простой txt файл.
Вспоминается как на многих длешных или укозовских сайтах в сайдбаре был выведен список посетителей, в том числе и роботов поисковых систем. Делалось это соответствующим модулем статистики. Я тут неплохой вариант сбора статистики для себя.
Кстати для мониторинга посещаемости сайта — очень полезная штука…
Что за безумный if else. Почему бы не писать:
$bot = stristr($_SERVER['HTTP_USER_AGENT'], 'Aport')? 'Aport': 'Unknown';
-
gloys Говорит:
21.03.2013 at 1:36 дп
Можно и так, смысл то не меняется
Хотя бы потому, что если написать подряд 20 тобою предложенных строк с проверкой на каждого бота, то в конце концов $bot станет или последним из ботов, или unknown, что на 90% будет не правильно. Можно это организовать с помощью массива и цикла. В цикле проверять на вхождение в юзер агент строки а[i], продолжать цикл, пока не достигнем вхождения. Если вышли за границу цикла, присваиваем unknown
-
gloys Говорит:
07.07.2013 at 4:51 пп
Вы что-то путаете, «в конце концов» бот не станет последним их ботов, это раз. Во вторых он станет (точнее останется) — unknown. Или вы действительно думаете, что я написал код от балды не проверяя его на работоспособность?
Если вам удобней работать с массивом — ради бога : )
Скрипт дело хорошее, но есть же log досье, читать муторно зато все учтено.
При заходе бота отдать ему дополнительный объемный текст для СЕО для данной странички.
Показывать уникальный текст на страничке не всегда красиво. А вот поисковикам отдавать то что нужно.
Текст для каждой странички хранить в бд.
Кто что думает об этом?