Кодерастам от кодераста!

Блог программиста » Новости » Программирование

Отслеживание ботов поисковых систем

Доброго времени суток!

Прежде всего хочу извиниться, что давно не писал, если ждал кто моего нового поста =)

Сегодня речь пойдёт о скрипте, с помощью которого вы сможете следить за посещениями посковых роботов(Crawler) вашего сайта.

Я создаю свои проекты только на собственном движке, так как знаю в нём кажду строчку и мне очень удобно с ним работать. Время от времени я нужнаюсь в каких-то новых модулях. И вот, этот момент настал. Я захотел отследить всех ботов, которые заходят на мой сайт.

Делать мы это будем благодаря переменной $_SERVER[`HTTP_USER_AGENT`]. Эта переменная содержит в себе имя браузера, в котором открыли ваш сайт. У поисковых ботов это не мозила, ИЕ или опера. Отсюда мы и будем отталкиваться.

Вот код скрипта:

function SpiderDetect($USER_AGENT){
  $engines = array( //Задаём имена известных ботов
  array(`Aport`, `Aport robot`),
  array(`Google`, `Google`),
  array(`msnbot`, `MSN`),
  array(`Rambler`, `Rambler`),
  array(`Yahoo`, `Yahoo`),
  array(`AbachoBOT`, `AbachoBOT`),
  array(`accoona`, `Accoona`),
  array(`AcoiRobot`, `AcoiRobot`),
  array(`ASPSeek`, `ASPSeek`),
  array(`CrocCrawler`, `CrocCrawler`),
  array(`Dumbot`, `Dumbot`),
  array(`FAST-WebCrawler`, `FAST-WebCrawler`),
  array(`GeonaBot`, `GeonaBot`),
  array(`Gigabot`, `Gigabot`),
  array(`Lycos`, `Lycos spider`),
  array(`MSRBOT`, `MSRBOT`),
  array(`Scooter`, `Altavista robot`),
  array(`AltaVista`, `Altavista robot`),
  array(`WebAlta`, `WebAlta`),
  array(`IDBot`, `ID-Search Bot`),
  array(`eStyle`, `eStyle Bot`),
  array(`Mail.Ru`, `Mail.Ru Bot`),
  array(`Scrubby`, `Scrubby robot`),
  array(`Yandex`, `Yandex`),
  array(`YaDirectBot`, `Yandex Direct`)
  );

  foreach ($engines as $engine) {
  if (strstr($USER_AGENT, $engine[0])){
  return($engine[1]);
  }
  }

  return (false);
}

$detect = SpiderDetect($_SERVER[`HTTP_USER_AGENT`]); //вызываем функцию и передаём ей значение

if ($detect){ //Если бот обнаружен, то делаем то, что нам захочется
 $date=date("d.m.Y H:i:s");
 $url=$_SERVER["PHP_SELF"];
 $ref=$_SERVER["HTTP_REFERER"];
 //дальше вы можете сделать что угодно, лично я заношу полученные данные в БД, а в администрировании сайта имею фильтр по посещениям ботов(Дата/Имя). Очень удобно. А можно просто заносить всё в фай
}

Правда ведь легко?

сохраняем это всё как php скрипт, инклудим в сайт и радуемся, когда ваш сайт посещают боты.

Конец =)

 

PS: Друзья, если вы меня читаете, отпишите в комментах, может что не понятно, я всё объясню. Мне же приятно, когда вы комментите, даже если коммет будет отрецательный.