 |
Как лучше отсеивать поисковых роботов? |

11.02.2009, 11:59
|
|
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
С нами:
10179806
Репутация:
702
|
|
Как лучше отсеивать поисковых роботов?
Нужно показывать поисковым бота немного другой контент... Как определить, что посетитель сайт - поисковый бот?
|
|
|

11.02.2009, 13:05
|
|
Познающий
Регистрация: 26.10.2007
Сообщений: 83
С нами:
9758702
Репутация:
50
|
|
либо по диапазону его IP (имхо это гавно метод) а второй вариант по юзер агенту
PHP код:
function SpiderDetect() {
$engines = array(
array('Google', 'Google Bot'),
array('Gsa-crawler', 'Google Bot'),
array('Yandex', 'Yandex Bot'),
array('YaDirectBot', 'Yandex Direct Bot'),
array('Yahoo', 'Yahoo Bot'),
array('Rambler', 'Rambler Bot'),
array('msn', 'MSN Bot'),
array('Gigabot', 'Giga Bot'),
array('Aport', 'Aport Bot'),
array('Lycos', 'Lycos Bot'),
array('FAST-WebCrawler', 'WebCrawler Bot'),
array('Mail.Ru', 'Mail.Ru Bot'),
array('IDBot', 'ID-Search Bot'),
array('eStyle', 'eStyle Bot'),
array('AbachoBOT', 'Abacho Bot'),
array('accoona', 'Accoona Bot'),
array('AcoiRobot', 'Acoi Bot'),
array('ASPSeek', 'ASPSeek Bot'),
array('CrocCrawler', 'CrocCrawler Bot'),
array('Dumbot', 'Dumbot Bot'),
array('GeonaBot', 'Geona Bot'),
array('MSRBOT', 'MSR Bot'),
array('Scooter', 'Altavista Bot'),
array('AltaVista', 'Altavista Bot'),
array('WebAlta', 'WebAlta Bot'),
array('Scrubby', 'Scrubby Bot'),
array('Slurp', 'Slurp Bot'),
array('ia_archiver', 'IA.Archiver Bot'),
array('Baiduspider', 'Baidu.com'),
array('oBot', 'oBot'),
array('Speedy Spider', 'EntireWeb Bot'),
array('Speedy_Spider', 'EntireWeb Bot'),
array('Teoma', 'Ask Bot'),
array('Binky', 'libwww.Binky Bot'),
array('amaya', 'libwww.amaya Bot'),
array('Webgate', 'libwww.Webgate Bot'),
array('W3C_Validator', 'libwww.W3C Validator Bot'),
array('libwww', 'libwww.nothing Bot'),
array('What You Seek', 'WhatYouSeek Bot'),
////////////////////////////////////////////////////////
array('Offline Explorer', 'Offline Explorer Bot'),
array('Teleport', 'Teleport Bot'),
);
foreach ($engines as $engine) {
if (stristr($_SERVER['HTTP_USER_AGENT'], $engine[0])) {
return($engine[1]);
}
}
return false;
}
ет тока набросок и то не мой.. за исключение списка ботов (я его начал делать но не успел проверить все до конца + многих не хватает)
|
|
|

11.02.2009, 13:11
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
С нами:
10541186
Репутация:
921
|
|
по UserAgent
http://devaka.ru/articles/list-of-search-bots например
PHP код:
if (strstr($user_agent = getenv("HTTP_USER_AGENT");, "Yandex")) $robot = "Яндекс";
|
|
|

11.02.2009, 16:13
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
С нами:
9642449
Репутация:
606
|
|
По юзер агенту - метод стар как мир, они заходят и под обычным юзер агентом...
Так что лучше делать gethostbyaddr(ip) и смотреть там вхождения на google, yahoo и прочее
|
|
|

11.02.2009, 16:15
|
|
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
С нами:
10179806
Репутация:
702
|
|
и смотреть там вхождения на google, yahoo и прочее
а подробнее?
|
|
|

11.02.2009, 16:17
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
С нами:
9642449
Репутация:
606
|
|
ну что то типа того
<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if(strstr($hostname,'google')){
echo $content1;
}else{
echo $content2;
}
?>
|
|
|

11.02.2009, 17:20
|
|
Познающий
Регистрация: 26.10.2007
Сообщений: 83
С нами:
9758702
Репутация:
50
|
|
DNS детектирование согласен это более эффективно но и геморройней по ряду причин но если речь идет о клоакинге то игра стоит свечь но не стоит забывать о том что 100% метода определения поискового бота не существует в природе.
я думаю публике стоит знать зачем TC хочет отлавливать ботов.. тогда и можно будет подобрать самый оптимальный метод.
ЗЫ: на самом деле меня тоже волнует этот вопрос.. но мне это требуется только для сбора примерной статистики вот я и машинально предложил палить по юзер агенту
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|