Как с помощью php обнаружить ботов поисковых систем?
php
web-crawler
bots
потрясающий
источник
источник
strpos
возвращаетсяFALSE
при неудаче. Однако это быстрее и эффективнее (без предварительной обработки и без O (m) хранилища).Я использую следующий код, который, похоже, работает нормально:
обновление 16-06-2017 https://support.google.com/webmasters/answer/1061943?hl=en
добавлены медиапартнеры
источник
Проверьте
$_SERVER['HTTP_USER_AGENT']
некоторые из перечисленных здесь строк:http://www.useragentstring.com/pages/useragentstring.php
Или, точнее, для сканеров:
http://www.useragentstring.com/pages/useragentstring.php?typ=Crawler
Если вы хотите -сообщить- регистрировать количество посещений наиболее распространенных сканеров поисковых систем, вы можете использовать
источник
Вы можете проверить, является ли это поисковой системой с помощью этой функции:
Тогда вы можете использовать это как:
источник
Я использую это для обнаружения ботов:
Кроме того, я использую белый список для блокировки нежелательных ботов:
Затем нежелательный бот (= ложноположительный пользователь) может решить капчу, чтобы разблокировать себя на 24 часа. И поскольку никто не решает эту капчу, я знаю, что она не дает ложных срабатываний. Так что обнаружение ботов, похоже, работает отлично.
Примечание. Мой белый список основан на файле robots.txt Facebook .
источник
)
в своем первом фрагменте кода.Поскольку любой клиент может настроить пользовательский агент на то, что он хочет, поиск «роботов Google», «bingbot» и т. Д. - это только половина дела.
Вторая часть - это проверка IP клиента. Раньше для этого требовалось вести списки IP-адресов. Все списки, которые вы найдете в Интернете, устарели. Ведущие поисковые системы официально поддерживают проверку через DNS, как объяснили Google https://support.google.com/webmasters/answer/80553 и Bing http://www.bing.com/webmaster/help/how-to-verify. -bingbot-3905dc26
Сначала выполните обратный поиск в DNS IP-адреса клиента. Для Google это дает имя хоста в googlebot.com, для Bing - в search.msn.com. Затем, поскольку кто-то может установить такой обратный DNS на свой IP-адрес, вам необходимо выполнить проверку с помощью прямого поиска DNS на этом имени хоста. Если полученный IP-адрес совпадает с IP-адресом посетителя сайта, вы уверены, что это сканер из этой поисковой системы.
Я написал библиотеку на Java, которая выполняет эти проверки за вас. Не стесняйтесь портировать его на PHP. Это на GitHub: https://github.com/optimaize/webcrawler-verifier
источник
Я использую эту функцию ... часть регулярного выражения поступает из prestashop, но я добавил к нему еще несколько ботов.
В любом случае позаботьтесь о том, чтобы некоторые боты использовали браузер, например пользовательский агент, для подделки своей личности.
(у меня есть много русских IP-адресов, которые имеют такое поведение на моем сайте)
Отличительной особенностью большинства ботов является то, что они не хранят файлы cookie, и поэтому к ним не привязан сеанс.
(Я не уверен, как, но это наверняка лучший способ их отслеживать)
источник
Вы можете проанализировать пользовательский агент (
$_SERVER['HTTP_USER_AGENT']
) или сравнить IP-адрес клиента ($_SERVER['REMOTE_ADDR']
) со списком IP-адресов роботов поисковых систем .источник
Используйте библиотеку с открытым исходным кодом Device Detector, она предлагает функцию isBot (): https://github.com/piwik/device-detector
источник
Это был бы идеальный способ прикрыть пауков. Это из сценария с открытым исходным кодом под названием [YACG] - http://getyacg.com
Требуется немного поработать, но это определенно способ.
источник
Я сделал для этого одну хорошую и быструю функцию
Это покрывает 99% всех возможных ботов, поисковых систем и т. Д.
источник
Я использую этот код, очень хорошо. Вы очень легко узнаете, что пользовательские агенты посетили ваш сайт. Этот код открывает файл и записывает user_agent в файл. Вы можете проверять этот файл каждый день,
yourdomain.com/useragent.txt
заходя и узнавая о новых user_agents и помещая их в свое условие if.Это содержимое useragent.txt
источник
100% рабочий детектор ботов. Он успешно работает на моем сайте.
источник
Если вам действительно нужно обнаруживать роботов движка GOOGLE, вам никогда не следует полагаться на адрес user_agent или IP, потому что user_agent можно изменить и в соответствии с тем, что Google сказал в: Проверка робота Google
Вот мой проверенный код:
В этом коде мы проверяем «имя хоста», которое должно содержать «googlebot.com» или «google.com» в конце «имени хоста», что действительно важно для проверки точного домена, а не субдомена. Надеюсь вам нравится ;)
источник
Для Google я использую этот метод.
Кредиты: https://support.google.com/webmasters/answer/80553
источник
источник