Определение пауков ПС на PHP.
23 Апр 2008
Не знаю, пригодится ли этот скрипт кому-то кроме меня, но выкладываю хотя бы просто чтобы не потерять. Простой скрипт анализирует переменную $_SERVER['HTTP_USER_AGENT'] и если обнаруживает признаки паука поисковой системы (кравлера), то выдает его имя, иначе – возвращает false.
Использовать можно по-разному:
- Можно как в IPB – сохранять в базу и выводить где-нибудь в админке или на сайте присутствующих в данный момент ботов.
- Можно собирать продвинутую статистику индексации и анализировать её (оптимальный вариант).
- Можно заниматься клоакингом и дорвеестроительством, но, пожалуй, не нужно.
SpiderDetect.phps - Определение роботов поисковых систем.


Roboquad rullleeezz!
Для добавления поисковых-ботов можно воспользоваться списками ботов на http://www.user-agents.org/
Да, кстати, штуковина с фотки, принадлежащая adw0rd расхаживает по квартире в режиме агрессии и атакует сапоги :-)
Из австатса можно вытянуть массивы с ботами, там на порядок больше. И оптимизировать чуть-чуть – популярные в начало двинуть.
А “пыщ-пыщ!” делаеть? :)
Делает. И лапой ещё бьёт.
Ага. И по яндексу надо разделить быстробота, основного и зеркальщика. Только их сигнатуры найти…
Нашёл подписи ботов Яндекса:
Сложные вы :)
Проще всего определять с помощью JavaScript (у кого есть JavaScript, тот не бот). Это будет тоже не абсолютно точно, но точнее.
А дальше что с этими данными делать ? Серверное определение позволяет более гибко использовать полученные данные.
медленными, но верными шагами ты подбираешься к ООП :)
@phpsouthpark, абсолютно прав, такие вещи желательно решать на уровне JS. (если проект расчитан на большое кол-во просмотров)
а вообще, какая разница кто пришел? ;)
Да, есть такая буква. Прочитал пару толковых книжек по ООП в среде PHP5, теперь наконец понял чего это и зачем. Удобно, толково, но в сознании не всегда под проектирование оперативной памяти хватает :-D
Я эти скрипты собираю со своей хитрой целью – давно зреет мысль сделать НОРМАЛЬНЫЙ счётчик. Может для себя, может как сервис. Процентов 50 кода уже есть, надо только собрать в кучу и завести :-D
В плане SEO-счётчика информация о том кто был и когда и с какой периодичностью и сколько сожрал – важна. И нафиг ваш JS в таком разрезе :-P
Тоже начинал для себя писать. Геоайпи, из австатса кучу повытягивал и на пхп перевел. Но все как-то важнее дела находятся.
p.s. а в разрезе ботов с поддержкой js? :) ты не поклонник теории заговора? :D
А, так JS вообще ботов засечь не должен – они ведь не выполняют его :-D
Ходят слухи что и такие чуда есть. Дороборцы :)
Спасибо, ценный скрипт! Сам хотел замутить, но все не доходили руки составить список ботов.
Кстати, в коде ошибка:
array(‘Yandex’, ‘Yandex’)
array(‘YaDirectBot’, ‘Yandex Direct’)
они не разделены запятой, поправь.
Угу, поправил, спасибо.
Никто не мешает использовать одновременно 2 метода. Просто список всех ботов в любом случае не получится, а с JS будет более 90% точности.
И в любом случае есть информация, которую можно получить только с помощью JavaScript – разрешение экрана, наличие Flash, Java. Для нормального счётчика это нужно :)
Такие данные нужны в основном для каких-то конкретных исследований. Для обычного счётчика я думаю они необязательны.
[...] Сибиряк, который написал занимательный пост о новом виде спама Жилинский Владимир, у которого можно почитать об определение пауков ПС на PHP [...]
А как же ситуация когда бот “прикидывается” браузером?
Насколько я знаю, если бот обнаруживает существенную разницу между видом страницы для бота и для браузера – это лишний минус сайту при ранжировании.
Но опять же эти данные из серии “одна баба сказала”.
Ну так автор же написал:
“Можно заниматься клоакингом и дорвеестроительством, но, пожалуй, не нужно.”
Существенная разница – это и есть клоакинг.
Интересная статья. Я подобным образом спамерских ботов определяю.
Например: larbin_2.6.3 larbin2.6.3@unspecified.mail
Это бот :)
список ботов даже опубликован сайте яндекса и гугляс тоже вывешивал его как-то.