Делаю свой счетчик - как лучше отсеять роботов?

12
Oniks
На сайте с 22.08.2005
Offline
176
1202

Появилась необходимость сделать свой счетчик посетителей. Вопрос к народу - как лучше определять роботов? Щас рассматриваю 2 варианта: сопоставлять USER_AGENT со списком или роботов, или браузеров. Проблема в обоих способах одна и та же - и роботов, и браузеров куча. Может, кто-нить реализовывал что-нить подобное, посоветуйте, как лучше сделать? А может, кто-то и списочек представлений роботов и браузеров даст:rolleyes:

PS Еще рассматривал вариант проверки наличия COOKIE, но на Яваскрипт нигде не нашел, как это сделать, а РНР с хедерами не подходит.

Профессиональные услуги фотографа в Москве и области (http://www.oniks-photo.ru/) покупаю стать и ссылки с сайтов про охоту
Oniks
На сайте с 22.08.2005
Offline
176
#1

Че-то я видать не проснулся еще, роботы ведь Яваскрипт не выполняют, этим их отсеить и можно. Но вопрос со списком USER_AGENT поисковиков все еще актуален. Никто не поделится? :)

A
На сайте с 29.12.2005
Offline
118
#2

Сильно не парился сделал так:

preg_match('/.*(WebAlta|Rambler|Yandex|IRLbot|msnbot|ia_archiver|Google|Yahoo|TurtleScanner|Aport|bot|crawl|altavista).*/i',$user_agent)

Юзерагенты прямо из логов взял, наверняка еще много чего есть, но пока не замечал, чтобы кто-то сильно статсы портил.

K
На сайте с 31.01.2001
Offline
737
#3

Лучше StackRambler. И добавить WebAlta !

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
D
На сайте с 10.10.2005
Offline
28
#4

А если по IP отфильтровать ?

Я не SEO я программист PERL (Apache 1.3.37 + mod_perl)!!!!! А ещё я люблю FastCGI
Oniks
На сайте с 22.08.2005
Offline
176
#5

Да вопрос решился довольно просто. Изучив логи, выделил все браузеры и роботы, ну а кто неизвестен, USER_AGENT сохраняется прямо так, чтобы потом можно было его в массив добавить.

sun
На сайте с 22.10.2005
Offline
81
sun
#6

$bot_names = array(

'Yandex/1.01.001 (compatible; Win16; I)',

'Yandex/1.01.001 (compatible; Win16; P)',

'Yandex/1.01.001 (compatible; Win16; H)',

'Yandex/1.03.003 (compatible; Win16; D)',

'Yandex/1.03.000 (compatible; Win16; M)',

'YaDirectBot/1.0 (compatible; Win 16?; I)',

'YandexBlog/0.99.101 (compatible; DOS3.30,B)',

'YandexSomething/1.0',

'Yandex/2.01.000 (compatible; Win16; Dyatel; C)',

'Yandex/2.01.000 (compatible; Win16; Dyatel; Z)',

'Yandex/2.01.000 (compatible; Win16; Dyatel; D)',

'StackRambler/2.0 (MSIE incompatible)',

'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',

'Google Feedfetcher',

'Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)',

'Yahoo-Blogs/v3.9',

'msnbot/1.0',

'WebAlta Crawler/1.3.12 (http://www.webalta.ru/bot.html) (Windows; U; Windows NT 5.1; ru-RU)',

'Yandex/1.01.001 (compatible; Win16; M)',

'Gigabot/2.0; http://www.gigablast.com/spider.html',

'psycheclone',

'msnbot/0.9 (+http://search.msn.com/msnbot.htm)',

'msnbot/1.0 (+http://search.msn.com/msnbot.htm)',

'WebAlta Crawler/1.3.18 (http://www.webalta.net/ru/about_webmaster.html) (Windows; U; Windows NT 5.1; ru-RU)'

);

devmen.com (http://devmen.com/)
dkameleon
На сайте с 09.12.2005
Offline
386
#7
Oniks:
Че-то я видать не проснулся еще, роботы ведь Яваскрипт не выполняют, этим их отсеить и можно. Но вопрос со списком USER_AGENT поисковиков все еще актуален. Никто не поделится?

полагаю, это самый оптимальный вариант. :)

Разве что потеряются доли процента юзеров, у которых Жабаскрипт по каким-то причинам не пашет.

Натыкался на списки юзерагентов ботов - порядка пары сотен.

да и версии могут меняться, поэтому по полной строке фиг сверишь - нужно по части.

Дизайн интерьера (http://balabukha.com/)
Oniks
На сайте с 22.08.2005
Offline
176
#8
dkameleon:
Натыкался на списки юзерагентов ботов - порядка пары сотен.
да и версии могут меняться, поэтому по полной строке фиг сверишь - нужно по части.

Ну да, поэтому я и пользуюсь регулярными выражениями :)

sun, большой фанкс ;)

K
На сайте с 31.01.2001
Offline
737
#9
sun:
'msnbot/0.9 (+http://search.msn.com/msnbot.htm)',
'msnbot/1.0 (+http://search.msn.com/msnbot.htm)',
'WebAlta Crawler/1.3.18 (http://www.webalta.net/ru/about_webmaster.html) (Windows; U; Windows NT 5.1; ru-RU)'
);

как только выйден новая версия каждого бота, этот фильтр будет бессилен. Не надо туда включать номера версий. Например, для Яндекса достаточно

Yandex/

A5
На сайте с 06.08.2006
Offline
46
#10

Есть такая утилита AWStats написана она с использованием perl. Так вот в этой утилите есть файл search_engines.pm, а внем прописано очень большое количество поисковых роботов.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий