nagon.net - бесплатная поставка трафика на ваши сайты
Логин:
Пароль:
Регистрация





Убрать рекламу с сайта чтобы не мешала!

Какие поисковые роботы посещали сайт? Определение поискового бота на javascript



Иногда в особых случаях требуется фиксировать на сайте поисковых ботов и не давать им загружать лишнюю информацию.
Данную задачу довольно просто решить с помощью серверного языка программирования (допустим php) с помощью фильрации ip адресов и заголовков user-agent, но как быть если нужно решить эту задачу на javascript?
Естественно на яваскрипте не возможно определить ip адрес, но очень просто узнать заголовок user-agent.
Большинство поисковых роботов в заголовках user-agent высылают информацию о себе.
(Более подробно смотрите на википедии)
http://ru.wikipedia.org/wiki/User_Agent

Собственно исходя из этой информации, я написал довольно простую функцию на javascript:


/************************************************/
var spider_detect = function(user_agent) {
var agent_dump = [
['Aport', 'Aport robot'],
['Google', 'Google'],
['msnbot', 'MSN'],
['Rambler', 'Rambler'],
['Yahoo', 'Yahoo'],
['AbachoBOT', 'AbachoBOT'],
['accoona', 'Accoona'],
['AcoiRobot', 'AcoiRobot'],
['ASPSeek', 'ASPSeek'],
['CrocCrawler', 'CrocCrawler'],
['Dumbot', 'Dumbot'],
['FAST-WebCrawler', 'FAST-WebCrawler'],
['GeonaBot', 'GeonaBot'],
['Gigabot', 'Gigabot'],
['Lycos', 'Lycos spider'],
['MSRBOT', 'MSRBOT'],
['Scooter', 'Altavista robot'],
['AltaVista', 'Altavista robot'],
['WebAlta', 'WebAlta'],
['IDBot', 'ID-Search Bot'],
['eStyle', 'eStyle Bot'],
['Mail.Ru', 'Mail.Ru Bot'],
['Scrubby', 'Scrubby robot'],
['Yandex', 'Yandex'],
['Mediapartners-Google', 'Mediapartners-Google (Adsense)'],
['Slurp', 'Hot Bot search'],
['WebCrawler', 'WebCrawler search'],
['ZyBorg', 'Wisenut search'],
['ia_archiver', 'Alexa search engine'],
['FAST', 'AllTheWeb'],
['YaDirectBot', 'Yandex Direct']
];

for(var j=0;j<agent_dump.length;j++) {
if(user_agent.toLowerCase().indexOf(agent_dump[j][0].toLowerCase())!=-1) {
return agent_dump[j][1];
}
}

return false;
}
/************************************************/


Теперь чтобы проверить является ли посетитель поисковым ботом достаточно использовать небольшую конструкцию с условием на яваскрипте:


if(spider_detect(navigator.userAgent)) {
document.write('Зафиксирован поисковый бот: '+spider_detect(navigator.userAgent));
}
else {
document.write('Я рад что ты не бот!!!');
}


Вот еще одна полезная статейка на википедии
http://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%BE%D0%B0%D0%BA%D0%B8%D0%BD%D0%B3


Вас зовут:

Ваш комментарий:


Код на картинке: