CrawlerDetect est une classe PHP permettant de détecter les robots/crawlers/spiders via l' user agent
et l'en-tête http_from
. Actuellement capable de détecter des milliers de robots/araignées/crawlers.
composer require jaybizzle/crawler-detect
use JaybizzleCrawlerDetectCrawlerDetect;$CrawlerDetect = new CrawlerDetect;// Vérifier l'agent utilisateur du 'visiteur' actuel if($CrawlerDetect->isCrawler()) {// true si l'agent utilisateur du robot est détecté}// Passer un agent utilisateur en tant que stringif ($CrawlerDetect->isCrawler('Mozilla/5.0 (compatible ; Sosospider/2.0 ; +http://help.soso.com/webspider.htm)')) {// true si l'agent utilisateur du robot d'exploration est détecté}// Afficher le nom du bot qui correspond (le cas échéant) echo $CrawlerDetect->getMatches();
Si vous trouvez un agent utilisateur bot/spider/crawler que CrawlerDetect ne parvient pas à détecter, veuillez soumettre une demande d'extraction avec le modèle regex ajouté au tableau $data
dans Fixtures/Crawlers.php
et ajoutez l'agent utilisateur défaillant à tests/crawlers.txt
.
À défaut, créez simplement un problème avec l'agent utilisateur que vous avez trouvé, et nous partirons de là :)
Si vous souhaitez l'utiliser avec Laravel, veuillez consulter Laravel-Crawler-Detect
Pour utiliser cette bibliothèque avec Symfony 2/3/4, consultez le CrawlerDetectBundle.
Pour utiliser cette bibliothèque avec le framework YII2, consultez yii2-crawler-detect.
Pour utiliser cette bibliothèque avec NodeJS ou toute application basée sur ES6, consultez es6-crawler-detect.
Pour utiliser cette bibliothèque dans un projet Python, consultez crawlerdetect.
Pour utiliser cette bibliothèque dans un projet JVM (y compris Java, Scala, Kotlin, etc.), consultez CrawlerDetect.
Pour utiliser cette bibliothèque dans un projet basé sur la norme .net (y compris .net core), consultez NetCrawlerDetect.
Pour utiliser cette bibliothèque avec Ruby on Rails ou toute application basée sur Ruby, consultez crawler_detect gem.
Pour utiliser cette bibliothèque avec Go, consultez le module crawlerdetect.
Certaines parties de cette classe sont basées sur le brillant MobileDetect