Главная » PHP » Статистика посещения поисковыми ботами

Статистика посещения поисковыми ботами

Мне давно интересно было узнать, какие поисковые боты посещают мой сайт и какие страницы они просматривают. А тут как раз подвернулась такая возможность в связи с экспериментами с Кандидат CMS. Я решил проверить уникальную возможность встраивания в эту cms всевозможных скриптов. Порывшись в интернет, наковырял кое-какие php скрипты, благодаря которым можно узнавать, какие поисковые боты заходили на сайт.

Для того, чтобы установить php скрипт для статистики посещения сайта поисковыми ботами, нам необходимо создать нескольтко файлов.

1. Создаем файл stat.php и добавляем в него следующую функцию:



<?php
if (isset($_GET[col])) $col=$_GET[col]; else $col=50;
$lines_cashe=file_get_contents("mycode/base_bot", LOCK_EX);
$file=explode("\n",$lines_cashe);
$size_f=count($file);
?>
<center>
<?php
if ($col>$size_f) $col=$size_f;
echo 'Последние <b>'.$col.'</b> посещений сайта ботами:';
?>
<table width="650" cellspacing="1" cellpadding="1" border="0"
STYLE="table-layout:fixed">
<tr bgcolor="#eeeeee">
<td class="zz" width="100"><b>Время, дата</b></td>
<td class="zz" width="200"><b>Кто посещал</b></td>
<td class="zz" width="100"><b>IP, прокси</b></td>
<td class="zz" width="250"><b>Посещенный URL</b></td>
</tr>
<?php
for ($si=$size_f-2; $si+1>$size_f-$col; $si--) {
$str=explode("|",$file[$si]);
echo '<tr bgcolor=#eeeeee><td class=zz>'.$str[0].'</td>';
echo '<td class=zz>'.$str[1].'</td>';
echo '<td class=zz>'.$str[2].'</td>';
echo '<td class=zz><a href="http://peoplestring.berezablog.com'.$str[3].'">'.$str[3];
echo '</a></td></tr>';
}
echo '</table>';
echo '<br>Просмотреть последние <a href=?col=100>100</a> <a href=?col=500>500</a> ';
echo '<a href=?col=1000>1000</a> посещений.';
echo '<br>Просмотреть <a href=?col='.sizeof($file).'>все посещения</a>.';
?>

Созданный файл stat.php кидаем в папку mycode. В будущем это будет наша страничка статистики.  

2. Создаем пустой файл base_bot и закидываем его в папку mycode. В этом файле будут храниться логи ботов.  

3.Создаем третий файл с произвольным названием. Пусть это будет файл boots.php со следующим содержимым:

<?php
$file="mycode/base_bot"; //имя файла с логами ботов
$col_zap=2499; //записей в логе ботов
$xxx=trim(strip_tags($_SERVER['HTTP_USER_AGENT']));
if (strpos($xxx, 'YandexBot')!==false) {$bot='YandexBot';}
elseif (strpos($xxx, 'Googlebot')!==false) {$bot='Googlebot';}
elseif (strpos($xxx, 'bingbot')!==false) {$bot='no_write_bot';}
elseif (strpos($xxx, 'Mail')!==false) {$bot='no_write_bot';}
elseif (strpos($xxx, 'YandexBlogs')!==false) {$bot='YandexBlogs';}
elseif (strpos($xxx, 'YandexImage')!==false) {$bot='YandexImages';}
elseif (strpos($xxx, 'YandexFavicons')!==false) {$bot='YandexFavicons';}
elseif (strpos($xxx, 'YandexDirect')!==false) {$bot='no_write_bot';}
elseif (strpos($xxx, 'YandexNews')!==false) {$bot='YandexNews';}
elseif (strpos($xxx, 'YandexSomething')!==false) {$bot='YandexSomething';}
elseif (strpos($xxx, 'YandexMetrika')!==false) {$bot='YandexMetrika';}
elseif (strpos($xxx, 'YandexAntivirus')!==false) {$bot='YandexAntivirus';}
elseif (strpos($xxx, 'Feedfetcher-Google')!==false) {$bot='Feedfetcher-Google';}
elseif (strpos($xxx, 'Googlebot-Image')!==false) {$bot='Googlebot-Image';}
elseif (strpos($xxx, 'Yahoo')!==false) {$bot='Yahoo!';}
elseif (strpos($xxx, 'WebCrawler')!==false) {$bot='WebCrawler';}
elseif (strpos($xxx, 'ZyBorg')!==false) {$bot='ZyBorg';}
elseif (strpos($xxx, 'Scooter')!==false) {$bot='AltaVista';}
elseif (strpos($xxx, 'StackRambler')!==false) {$bot='Rambler';}
elseif (strpos($xxx, 'Aport')!==false) {$bot='Aport';}
elseif (strpos($xxx, 'lycos')!==false) {$bot='Lycos';}
elseif (strpos($xxx, 'fast')!==false) {$bot='Fast Search';}
elseif (strpos($xxx, 'msnbot')!==false) {$bot='MSN';}
elseif (strpos($xxx, 'Nigma.ru')!==false) {$bot='Nigma';}
elseif (strpos($xxx, 'ia_archiver')!==false) {$bot='Alexa';}
elseif (strpos($xxx, 'Baiduspider')!==false) {$bot='Baidu';}
elseif (strpos($xxx, 'Exabot')!==false) {$bot='Exabot';}
elseif (strpos($xxx, 'archive.org_bot')!==false) {$bot='archive.org';}
elseif (strpos($xxx, 'Ezooms')!==false) {$bot='Ezooms';}
elseif (strpos($xxx, 'GrepNetstat.com Bot')!==false) {$bot='GrepNetstat.com';}
elseif (strpos($xxx, 'MJ12bot')!==false) {$bot='Majestic-12';}
elseif (strpos($xxx, 'AhrefsBot')!==false) {$bot='Ahrefs';}
elseif (strpos($xxx, 'TurnitinBot')!==false) {$bot='Turnitin';}
elseif (strpos($xxx, 'discobot')!==false) {$bot='no_write_bot';}
elseif (strpos($xxx, 'Subscribe.Ru')!==false) {$bot='Subscribe';}
elseif (strpos($xxx, 'TOP.NET.RU')!==false) {$bot='TOP.NET.RU';}
elseif (strpos($xxx, 'SISTRIX Crawler')!==false) {$bot='SISTRIX';}
elseif (strpos($xxx, 'Wotbox')!==false) {$bot='Wotbox';}
else {
$file="mycode/base_user"; //имя файла с логами пользователей
$col_zap=3499; //записей в логе пользователей
$bot=htmlspecialchars(substr($xxx,0,80));//обрезаем USER-AGENT до 80 символов
}
//записываем логи в файл с блокировкой
$l_cash='';
$fh=fopen($file,"a+");
flock($fh,LOCK_EX);
fseek($fh,0);
while (!feof($fh)) $l_cash.= fread($fh,8192);
$lines=explode("\n",$l_cash);
while(count($lines)>$col_zap) array_shift($lines);
$l_cash=implode("\n",$lines);
$l_cash.=date("H:i:s d.m")."|".$bot."|".$_SERVER['REMOTE_ADDR']."|".
htmlspecialchars($_SERVER['REQUEST_URI'])."\n";
ftruncate($fh,0);
fwrite($fh,$l_cash);
flock($fh,LOCK_UN);
fclose($fh);
?>

  Созданный файл boots.php также кидаем в папку mycode. Этот файл будет перехватывать всех ботов, пришедших на наш сайт.

Для того, чтобы получать статистику посещения ботами каждой страницы сайта, открываем файл темы template.php и в любом месте прописываем функцию: 

Практически у нас все создано. Остается лишь создать страницу статистику. Для этого создаем файл stat.dat и записываем в него следующую информацию:

<!-- Kan_title -->
Статистика<!-- Kan_title -->
<!-- Kan_content -->
<!-- Kan_content -->
<!-- Kan_myinclude -->
stat<!-- Kan_myinclude -->
<!-- Kan_description -->
Статистика<!-- Kan_description -->
<!-- Kan_keywords -->
Статистика<!-- Kan_keywords -->

Вот и все. Что из этого получилось, можете посмотреть на этой странице статистикистранице статистики.

Для данной статьи информация взята отсюда: Скрипт ведения логов посещения сайта .



26.05.2013 | Админ | Просм. 1004 | Комм. | Категория: PHP

Комментариев пока нет!
Ваше имя *
Ваш Email *

Сумма цифр справа: код подтверждения


21.05.2018
Мои эксперименты с Кандидат CMS

Владимир © 2006-2013
     
Шаблон позаимствован у Amalgams и адаптирован Студией VTB

Design by Kandidat-news CMS(0.0041 сек.)