Spider Trap: ловим пауков
Вы когда-нибудь задавались вопросом: что делают поисковые роботы на Вашем сайте, какие страницы они просматривают, когда они это делают?
Этот скрипт, состоящий из трёх файлов, отследит их всех и соберет статистику по каждому.
Принцип работы Spider Trap очень прост: на «входной контур» подключается ловушка. При запросе каких-либо ресурсов сайта «crawler» поисковой системы запускает механизм логирования. В результате в файл лога пишется UserAgent паука, IP адрес, список запрошенных им ресурсов и время обращения.
- Скрипт умеет отсеивать пользователей от ботов.
- Через пользовательский интерфейс можно подробно рассматривать логи.
- На каждый день создаётся отдельный лог-файл.
- Работает абсолютно прозрачно и не вызывает нагрузки.
- Механизм ловушки полностью автономен от логики анализа логов.
Установка и Конфигурация
- Загрузить содержимое архива в папку trap.
- Установить права доступа на index.php и trap.css 775
- На все остальные файлы 644
- Подключить trap.php с помощью require_once функции в начало исполняемого файла движка.
Точка подключения будет варьироваться от особенностей устройства вашей CMS. Например, для Drupal оптимальным вариантом будет подключение ловушки в начале файла common.inc в папке includes.
require_once './trap/trap.php';
Для Data Life Engine будет достаточно подключить trap.php в начале index.php.
Обращайте внимание на путь к файлу trap.php. В большинстве случаев будет достаточно указать относительный путь от корня, но для некоторых CMS или при достаточной вложенности исполняемых фалов потребуется указать абсолютный путь относительно сервера.
Не удаляйте и не изменяйте файл spiders.trap! Он нужен для логирования
Список роботов поисковых систем и сервисов
#список роботов $spiders['Google'] = 'Googlebot'; $spiders['Yandex'] = 'Yandex'; $spiders['Rambler'] = 'StackRambler'; $spiders['MSN'] = 'msnbot/'; $spiders['Yahoo!'] = 'Yahoo! Slurp'; $spiders['WordPress'] = 'WordPress/'; $spiders['Twiceler'] = 'Twiceler'; $spiders['iGde'] = 'igdeSpyder'; $spiders['Baidu'] = 'Baiduspider+'; $spiders['Majestic-12 '] = 'MJ12bot/'; $spiders['W3C-VR'] = 'Validator'; $spiders['Alexa'] = 'ia_archiver'; $spiders['W3 Sitesearch'] = 'W3 SiteSearch Crawler'; $spiders['MSNbot Media'] = 'msnbot-media/'; $spiders['Google AdsBot'] = 'AdsBot-Google'; $spiders['Aport'] = 'Aport'; $spiders['Google Adsense'] = 'Mediapartners-Google'; $spiders['Yandex.Direct'] = 'Direct/2.01.000'; $spiders['Yanga'] = 'Yanga WorldSearch'; $spiders['Tele-House'] = 'Dolphin/'; $spiders['NetCraft'] = 'NetcraftSurveyAgent/'; $spiders['BlogPulse'] = 'BlogPulse'; $spiders['Boomerang'] = 'Boomerang/'; $spiders['Tagoo'] = 'Tagoobot'; $spiders['Ovale'] = 'ovalebot'; $spiders['FollowSite'] = 'FollowSite Bot'; $spiders['OMG Crawler'] = 'OMGCrawler'; $spiders['Huasai'] = 'Huasai/'; $spiders['DobroBot'] = 'DobroBot'; $spiders['PostRank'] = 'PostRank/'; $spiders['FriendFeed'] = 'FriendFeedBot/'; $spiders['Amazon'] = 'bitlybot'; $spiders['Worio'] = 'woriobot'; $spiders['Twingly'] = 'Twingly Recon'; $spiders['OozBot'] = 'OOZBOT/'; $spiders['Snap Shots'] = 'Snapbot/'; $spiders['GoldenSpider'] = 'GoldenSpider/'; $spiders['Libra [China]'] = 'librabot/'; $spiders['Youdao'] = 'YoudaoBot/'; $spiders['BlogScope'] = 'BlogScope/'; $spiders['AOL'] = 'Slurp'; $spiders['Ask'] = 'Teoma'; $spiders['Alta Vista'] = 'Scooter'; $spiders['Mail.Ru'] = 'Mail.Ru'; $spiders['Web Alta'] = 'WebAlta'; $spiders['Web Alta'] = 'WebAlta Crawler/2.0'; $spiders['BaiDuSpider'] = 'BaiDuSpider'; $spiders['Google image'] = 'Googlebot-Image/'; $spiders['Google M.P.'] = 'Mediapartners-Google/'; $spiders['Openbot'] = 'Openbot/'; $spiders['Robozilla'] = 'Robozilla/'; $spiders['SiteXpert'] = 'SiteXpert'; $spiders['Nigma Spider'] = 'Nigma'; $spiders['Drupalogy.ru'] = 'Drupalogy'; $spiders['GoGo Searcher'] = 'GoGo'; $spiders['Sapient Solution'] = 'SAPE.BOT'; $spiders['Cyber Analytic'] = 'Cys'; $spiders['Yandex Direct'] = 'YaDirectBot/'; $spiders['Drupal.org'] = 'Drupal'; $spiders['Bastard'] = 'http://xn--90acjmnnc1hybf.su'; $spiders['Site-Perf.com'] = 'Site-Perf.com'; $spiders['Spider(?)'] = 'Spider'; $spiders['PDS Checker'] = 'Parking Domains Status Checker v0.2'; $spiders['PycURL'] = 'PycURL/'; $spiders['JS-Kit'] = 'JS-Kit URL Resolver'; $spiders['Twitter'] = 'Twitterbot/'; $spiders['Meta Data Labs'] = 'MLBot'; $spiders['ArtViper (?)'] = 'artviper(tm)'; $spiders['Ichiro (?)'] = 'ichiro';
А на Юкоз что-нибудь подобное пришпандорить можно?
Смысл? )))
А можно сделать так чтобы логи просматривать по датам?
На каждый день свой файлик с логом(имя файла содержит дату). Посмотрите в директории с логами
Не, я про то что скрипт показывает кто сегодня заходил. А так файлики присутствуют. Не удобно чтобы посмотреть кто вчера заходил, нужно скачивать по фтп.
Ну не знаю ... Мне кажется лишнее...
Там два файла с логами. Один на дату, а второй общий: в него пишутся все последние визиты. Кто когда в последний раз заходил как раз и видно а в корне.
Хм, тогда зачем столько логов создавать если их не просмотришь через вэб.
По мне так удобнее было.
Скажите, а есть ли возможность не вставлять скрипт в инклюды, а сделать, например, где-то незаметную ссылку на страницу, которую пользователи просто не увидят, а вот боты - найдут?
И смотреть кто туда заходит - тогда можно будет отслеживать даже тех ботов, которых нет в списке.
Текущая реализация врят-ли это позволяет сделать. Боты не всегда ходят по ссылкам и встает необходимость делать на каждую страницу. Смысл?
Чтобы добавить, тех которые нет можно воспользоваться гуглом, айпи посмотреть, «юа» и т.д. т.е. информация по ним всё равно отображается достаточно корректно и ошибки с отделением людей минимальны.
Спасибо. Может быть пристрою к сайту, пока обхожусь простеньким сниффером.
Наверно стоит срастить, роботов в одну тарелку, посетителей в другую.
Ну да. Удобнее отслеживать. Вообще нужно будет переделать чутка, спасибо за ваш сниффер, но он деприкэйтэд. Ереги - зло
Отправить комментарий