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

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

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

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

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

Сегодня речь пойдёт о скрипте, с помощью которого вы сможете следить за посещениями посковых роботов(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: Друзья, если вы меня читаете, отпишите в комментах, может что не понятно, я всё объясню. Мне же приятно, когда вы комментите, даже если коммет будет отрецательный.

Комментарии пользователей

Хорошая статья, огромном спасибо!
 
Предлагаю обмен сигнатурами ботов.
Список нужен для фильтрации в отображении статистики сайта: Кто On-Line.
Кто может добавить в список ботов, буду благодарен.
[Alexa]=ia_archiver
[Altavista]=scooter
[Aport]=aport
[Archive.org]=archive_org
[Baidu]=baiduspider
[Cuil]=twiceler
[Dolphin Crawler]=dolphin
[Flexum]=Flexum
[FlickySearchBot]=FlickySearchBot
[Gigabot]=gigabot
[Google AdSense]=mediapartners-google,adsbot-google
[Google]=googlebot
[Grub]=grub
[IGDE]=igdeSpyder
[Lycos]=lycos
[Mail.Ru]=mail.ru
[MJ12]=MJ12bot
[MSN]=msnbot
[Panscient]=panscient.com
[Rambler]=rambler
[Tagoo]=Tagoobot
[Yahoo]=yahoo
[Yandex]=yandex
[Yanga]=yanga
[Bot]=bot,crawl,search,spider,web,worm,Mozilla/4.75 [en]
 
Устанавливать на ucoz будем? Если да, то не поставим
 
Можеш подробно написать установку этого скрипта на мыло pro100zed@yandex.ru
зарание спасибо =)
 
А что не заработало? Как вы хотели, что бы работало?
 
Спасибо, но почему-то не заработало.
 

Добавить комментарий

Login*: (обязательно)
Email*: (обязательно, не отображается)
Site: (dofollow, nospam)
    

Минутка математики: 1+7