Скрипт статистики посещений поисковыми ботами
Лично мне очень любопытно, какой бот когда заходил ко мне на сайт и что смотрел. Если Вы также имеете заинтересованность в ведении подобного учета посещений сканерами, Вам обязательно пригодится данный скрипт.
Скрипт написан на PHP (возможна работа как в режиме PHP-как-модуль-Апача, так и в PHP-как-FastCGI), полностью валиден (в рамках соответствия стандартам XHTML11, XHTML1/Strict и CSS/3), имеет гибкую систему настроек и панель настройки ботов.
Скрипт: botstat.zip
Обновление до текущей версии (с версии 1.3.11): botstat_upgrade.zip
Версия: 1.03 (rev.0015)
Последнее обновление: 06.11.2009, 20:43 мск
Список изменений версии 1.03.0015:
• [!] Устранена критическая проблема безопасности.
• [+] Доработан механизм автоматического информирования администратора о наличии новых версий.
• [*] Исправлен баг, в результате которого не фиксировались посещения одним из ботов Rambler‘а.
• [*] Исправлен баг, возникающий при одновременном добавлении 5 ботов в админке.
Список изменений версии 1.03.0011:
• [!] Устранена критическая проблема безопасности.
• [+] Добавлен механизм автоматического информирования администратора о наличии новых версий.
• [+] Усовершенствовано отображение ботов с длинными строками User-Agent.
Список изменений версии 1.02.0008:
• [+] Усовершенствован механизм постраничного разбиения.
• [*] Мелкий багфикс.
Список изменений версии 1.02.0007:
• [+] Добавлено постраничное разбиение в режиме просмотра детального списка посещений выбранным ботом.
• [+] В панели администратора добавлена опция единовременной ручной очистки детализированного лога.
Список изменений версии 1.01.0004:
• [+] Усовершенствована панель администратора: реализована в виде многовкладочного окна, теперь абсолютно все настройки можно редактировать не прибегая к редактированию файлов.
• [*] Множественный мелкий багофикс.
Пример использования (уровень доступа — пользователь): bots.php
Инструкция по установке:
- Распакуйте архив в корень вашего сайта
- Добавьте следующий фрагмент в файл .htaccess:
<Files "bot_stat.*"> Order Allow,Deny Deny from All </Files> <Files "bots_*"> Order Allow,Deny Deny from All </Files> <Files "bots.php"> <IfModule mod_fastcgi.c> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:Authorization} !^$ RewriteRule ^(.+)\.php$ $1.php?HTTP_AUTH=%{HTTP:Authorization} [QSA,L] </IfModule> </IfModule> </Files>
- Добавьте следующий код:
<?php require_once 'bot_stat.php'; ?>
в файл, общий для всех страниц Вашего сайта (предпочтительно — в начало файла ‘header.php’)
- Настройте права доступа к файлам:
Оптимистичный вариант: на сервере используется mpm-itk, либо PHP-как-CGI:- Установите права 644 на все файлы скрипта
Чуть менее оптимистичный вариант: есть возможность сменить владельца файлов:
- Смените владельца всех файлов скрипта на ‘apache’
- Установите права 644 на все файлы скрипта
Пессимистичный вариант: возможности ограничены хостером:
- Установите права 666 на файлы: bot_stat.log, bot_stat.txt, bots_settings.php
- Установите права 644 на остальные файлы.
- Приступим к настройке конфига (файл ‘bots_settings.php’):
- Админ (имеет право вносить и удалять боты): $admin_login, $admin_password
- Юзер (имеет право просматривать статистику): $user_login, $user_password
- $current_lang:
- auto — автоопределение языка пользователя (Рекомендуется!)
- en — Английский/международный
- ru — Русский
- … — Любой другой, перевод на который Вы сможете осуществить.
- $current_charset — charset Вашего сайта (по крайней мере в отношении url’ов)
- $botdetails_reverse — порядок отображения списка URI, посещенных ботами:
true/false. - $botdetails_page_len — количество записей, одновременно выводимых на экран в режиме детализированного отчета о посещениях выбранного бота.
Если $admin_login равен пустой строке, то все имеют уровень доступа администратора (НЕ рекомендуется!)
Если $user_login равен пустой строке, то все имеют уровень доступа пользователя.
Будущие версии буду выкладывать здесь же.
При обновлении предыдущих версий скрипта, не перезаписывайте файлы: bot_stat.log и bot_stat.txt, а в файле bots_settings.php введите заново логины и пароли.
Обсуждение на форуме: http://usings.ru/forum/viewtopic.php?t=13
55 ответов Оставить комментарий
Скрипт классный!
Только у меня почему-то не встал!
У меня странички в HTML вставил код:
Захожу на bots.php а там ни одного паука! Обидно!
Настройки сделал по Пессимистичному варианту
Полезный скрипт — спасибо. Ставлю и тестю. Был бы баннер на сайте, поблагодарил 🙁
Спасибо, очень нужная штука. Эх, ещё бы иметь статистику с нескольких сайтов в одном месте =) и распаковывать в подпапку ))
Дмитрий: развернутый ответ читайте на серче: http://forum.searchengines.ru/showpost.php?p=5301335&postcount=23
nomad: баннер изготовим, спасибо.
defs: это несколько проблематично. Я обдумаю Ваше предложение, хотя испытываю искренние сомнения в необходимости валить статистику с разных сайтов в одну кучу. В качестве альтернативы, я бы предложил Вам поставить скрипт на каждый из сайтов в отдельности, и создать простую HTML-страничку со ссылками на страницы статистики каждого сайта.
Спасибо, очень скриптик понравился.
***************
(Блин, прочитал первую свою фразу и понял, что мне такие же в WP пачками спамят 🙂 Поэтому допишу, что закинул чуток WMR в благодарность. Считаю, что такие вещи должны быть малость платными, ибо действительно экономят время тех, кому они нужны)
Отличный скрипт, автору респект…
Скрипт полезный и очень нужный, есть ли возможность прикрутить его к дле?
Kopona: даже уверен, что это очень легко. В пункте 3 инструкции по установке указан общий способ, который наверняка подойдет и здесь.
да всё верно, установил по пунктику 3, но стата пустая, поэтому и написал… и то что в вордпрессе завётся header.php в дле main.tpl, может php с tpl не дружат? )) своих мозгов не хватает (:
Да, tpl с php естественно не дружат. Попробуйте вставить код из пункта 3 в самое начало файла /engine/data/config.php.
спасибо, чудо свершилось, код поставил в /engine/data/config.php., пошёл сбор статистики ( bot_stat.log — заполняется ) но админка нас опять встречает пустотой.
Проверьте владельца и права на файл bot_stat.txt (должны быть такими же, как и на bot_stat.log), если вы имели в виду главную страницу статистики, а не админку. Если же не работает именно админка, то, пожалуйста, сообщите версию браузера и ОС.
не работает сама админка , win xp sp 3 — проверил оперой , мозилкой и IE .
сами гляньте — доступ к статистике( логин и пасс по умолчанию)
админка работает, мой косяк ( bot_stat.txt вообще отсутствовал)) спасибо
имхо — безполезный скрипт, логи ведь никто не отменял
Марычев Александр: ну нет, так нет, не используйте скрипт, читайте логи. 😉
Кстати, на многих бесплатных хостингах логи апача отключены.
А из за чего такая ошибка пояляется
Warning: require_once(bot_stat.php) [function.require-once]: failed to open stream: No such file or directory in /home/virtwww/***/http/znakomstva-vorotinsk/index.html on line 7
Fatal error: require_once() [function.require]: Failed opening required ‘bot_stat.php’ (include_path=’.:’) in /home/virtwww/***/http/znakomstva-vorotinsk/index.html on line 7
fog6670, просто укажите полный путь к файлу bot_stat.php в строке: require_once ‘bot_stat.php’;
Получится что-то типа:
require_once ‘/home/virtwww/***/http/znakomstva-vorotinsk/bot_stat.php’;
Должно помочь.
Спасибо ,друг. так работает.долго правда, для каждого домена путь прописывать,может в хосте что-то добавить/изменить,чтобы без указания полного пути ,чтобы в шаблоне тока код был
можно это как нить сделать?
админ, скинь на почту аську.есть деловое предложение
Вчера все установила админка работает, сегодня смотрю боты или не заходили или …
логи чистые, подскажите, что не так, может всетаки что-то неправильно сделала… или просто ещё роботов не было… и в файл .htaccess все добавила, но у меня ведь там были записи, как быть? Спасибо
Уважаемый admin, ну почему вы удалили мой пост, я подключаю файлы через include, подскажите куда нужно установить код, порядок у меня такой top.inc и bootom.inc
Calisto, во-первых никто ничего не удалял. Просто комментарии в данном блоге проходят премодерацию.
Во-вторых,пожалуйста, перечитайте предыдущие комменты, а также этот пост (и продолжение), там уже описывалась подобная проблема и методы ее решения. Также убежден, что дело тут не в .htaccess.
Admin, спасибо! Просто вставила код перед тегом и все заработало.
Спасибо большое, а то австатс хостером предлагается старый старый, а как его поменять я не разобрался пока. Спасибо, еще раз.
Да, забыл попросить, можно устроить столбец с кол-вом информациии загруженной спайдером?
Если количество информации — это суммарный объем (в байтах) ресурсов, отданных сервером по запросам бота, то это проблематично, т.к. в момент выполнения скрипта сервер отдачу еще не произвел. Но я подумаю.
посмотрите для примера как это сделано в awstats, если заинтересуетесь
Хмм, странно, скрипт работал работал пару дней, всё нравилось. А потом перестал обновляться. Ничего не менял. Такое у кого-нибудь было?
Всё, разобрался, сори за панику. Какие новости по проекту то? Когда платная версия или обновление? Расскажите.
Обсуждение тут: http://usings.ru/forum/viewtopic.php?f=6&t=14
Дата выхода версии пока неопределенная, т.к. очень не хочется выпускать скороспелый и некачественный продукт.
Добрый день! Устанавливаю по инструкции ваш скрипт! После добавления в header.php необходимой строки сайт перестает загружаться, в чем может быть проблема?
Pavlenkora, попробуйте указать полный путь к файлу bot_stat.php:
require_once ‘/home/***/вашдомен/bot_stat.php’;
Если не помогло, пожалуйста, сообщите текст ошибки.
Огромное спасибо, все работает! Предлагаю вам сделать обзор вашего скрипта на http_nulled_ws. Вещь необходимая, уверен вызовет большой интерес как бесплатная так и платная версии. Готов помочь (за вашу отзывчивость) с релизом и отзывами про ваш скрипт на nullede. ICQ 199999504.
Поставил код на статический сайт из html страничек. В итоге, поисковые боты, зашедшие на любую страницу — не отображаются в статистике. НО, как только меняю в настройках браузера юзерагент, на юзерагента яндекса из логов сервера «Yandex/1.03.003 (compatible; Win16; D)»,например, сразу же появляется соответствующая запись в статистике. Из-за чего это может быть? В логах сервера нет никаких ошибок.
Усё, разобрался ;( По логам смотрел яндекс, но проглядел, что тип запроса был HEAD и соотвественно тело страницы не загружалось, скрипт не выполнялся.
Здравствуйте, а есть ли возможность вывод на страницу ботов которые находятся онлайн или хотя бы после обнаружения отображался 5 минут…
Что надо дописать?
Добрый вечер.
Вам удобнее всего будет парсить файл bot_stat.txt, его формат я даже описывать не буду, ибо он примитивен до вульгарности.
Чтобы дать N мин боту, читайте первые строки до тех пор, пока не встретите дату, отстоящую от текущей на -N мин. Это и будут записи User-Agent’ов ботов, имевших активность в течение последних N мин. Чтобы преобразовать их в человеческий вид, используйте массив $bot_names (в bots_settings.php).
Удачи!
Здравствуйте, я всё установил по инструкции, но у меня невидно логов, хотя в логах хостинга.. я вижу что яндекс сканирует. А в бот. Логи пустые(
Если логи пустые, значит не выполняется require_once. Назовите движок сайта и в какой файл помещен данный код. Или сайт статический?
Спасибо нашёл) Не в тот файлик добавил (((
Я дабавил в хандер дизайна.. а там tpl .. теперь добавил в файл хандерс.пшп
А можно узнать, где и что нужно поменять, если я не в корен сайта кинул, а кинул папку в корень сайт botstat , чтоб в корне всё не валялось. (где пути поменять и т.д.)?
Достаточно только лишь поменять путь в require_once.
Например так:
$dirname = dirname(__FILE__) . '/';
require_once $dirname . 'botstat/bot_stat.php';
Здравствуй, Разработчик!
Обращаюсь по поводу #3 и #4 комментария в данном посте. Вы возьмётесь за реализацию мультидоменной статистики в одном месте? Что-бы скрипт можно было установить на 1.ru и иметь статистику по посещаемости ботов других 100 сайтов к примеру 2.ru, 3.ru, 4.ru и т.д. 😉
Так-же возможна реализация без PHP что-бы скрипт можно было использовать на Free хостингах у которых нет поддержки PHP?
Всех вам благ и фарта!
Жду ответа.
Здравствуйте, Дорвейщик!
Да, я все еще занимаюсь разработкой многодоменной версии. Однако разработка усложняется тем, что нет универсального решения проблемы межсерверной коммуникации в условиях, что домены находятся на разных хостингах.
Реализация скрипта без использования какого-либо серверного языка (в частности PHP) — невозможна, т.к. боты не выполняют клиентские скрипты (например javascript)!
Спасибо.
Здравствуйте! Сколько стоит платная версия скрипта учета ботов?
Доброго времени суток! Платная версия все еще находится в разработке и тестировании.
разработчики, пожалуйста, укажите, что для работы скрипта требуется PHP5 !
А так что не понятно ???? Или Вы имеете ввиду что PHP предыдущих версий не потянут скрипт ???
P/S/ За скриптег — СПАСИБОООО
блин Вы мой комент удалили , а я пришол посмотреть чо ответили -_-
Хороший скрипт наверное… Жаль только, что только через php инклюдится :(. Шаблон моего сайта не позволяет так инклюдить 🙁
Странно но у меян скрип не запустился (( выдал ошибку 500 ! ((((
Что бы не дела как только вписываешь в файл .htaccess:
…
Order Allow,Deny
Deny from All
…
Order Allow,Deny
Deny from All
…
RewriteEngine On
RewriteCond %{HTTP:Authorization} !^$
RewriteRule ^(.+)\.php$ $1.php?HTTP_AUTH=%{HTTP:Authorization} [QSA,L]
…
Все сразу же не работает ((((
Все разхобрался )))) спасибо )))
В админке почемуто все таблички смещщены и не работают. Что может быть не так??? Заранее спасибо..
Opera AC 3.5.2 именно в этом браузере кривится все (что очень странно Опера обычно не глючит) В остальных смотрел все отлично…