Как определить поискового робота в php?

Пользователь

от stephania , в категории: PHP , 2 года назад

Как определить поискового робота в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jensen , 2 года назад

@stephania Вы можете смотреть USER_AGENT из глобального массива $_SERVER каждый робот отдает специфический USER_AGENT, например вот проверка на Google Bot:


1
2
3
4
5
6
<?php

if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot"))
{
    // Гугл бот
}


Можно также просто проверять бот или нет через регулярные выражения(простая проверка большинства популярных ботов):


1
2
3
4
5
<?php

if (preg_match('/apple|baidu|bingbot|facebookexternalhit|googlebot|-google|ia_archiver|msnbot|naverbot|pingdom|seznambot|slurp|teoma|twitter|yandex|yeti/i', $_SERVER['HTTP_USER_AGENT'])) {
    // бот
}

Пользователь

от willis.streich , год назад

@stephania 

В PHP, вы можете использовать функцию get_browser() для получения информации о браузере, используемом пользователем. Эта функция обычно используется для определения типа браузера, версии и платформы пользователя, но она также может возвращать информацию о том, является ли браузер поисковым роботом.


Чтобы определить, является ли браузер поисковым роботом, вы можете использовать следующий код:

1
2
3
4
5
6
7
$browser = get_browser(null, true);

if ($browser['crawler']) {
  // браузер является поисковым роботом
} else {
  // браузер не является поисковым роботом
}


Обратите внимание, что этот метод не является надежным способом определения поисковых роботов, так как некоторые поисковые роботы могут изменять информацию о себе, представленную в HTTP-заголовках. Поэтому реком