CrawlerDetect é uma classe PHP para detectar bots/crawlers/spiders por meio do user agent
e do cabeçalho http_from
. Atualmente capaz de detectar milhares de bots/spiders/crawlers.
composer require jaybizzle/crawler-detect
use JaybizzleCrawlerDetectCrawlerDetect;$CrawlerDetect = new CrawlerDetect;// Verifique o agente do usuário do 'visitor' atual se($CrawlerDetect->isCrawler()) {// true se o agente do usuário do rastreador for detectado}// Passe um agente do usuário como uma stringif ($CrawlerDetect->isCrawler('Mozilla/5.0 (compatível; Sosospider/2.0; +http://help.soso.com/webspider.htm)')) {// verdadeiro se o agente do usuário do rastreador for detectado}// Gera o nome do bot que correspondeu (se houver)echo $CrawlerDetect->getMatches();
Se você encontrar um agente de usuário bot/spider/crawler que o CrawlerDetect não consegue detectar, envie uma solicitação pull com o padrão regex adicionado à matriz $data
em Fixtures/Crawlers.php
e adicione o agente de usuário com falha em tests/crawlers.txt
.
Caso contrário, basta criar um problema com o agente de usuário que você encontrou e nós cuidaremos disso :)
Se você gostaria de usar isso com o Laravel, consulte Laravel-Crawler-Detect
Para usar esta biblioteca com Symfony 2/3/4, verifique CrawlerDetectBundle.
Para usar esta biblioteca com a estrutura YII2, verifique yii2-crawler-detect.
Para usar esta biblioteca com NodeJS ou qualquer aplicativo baseado em ES6, verifique es6-crawler-detect.
Para usar esta biblioteca em um projeto Python, confira crawlerdetect.
Para usar esta biblioteca em um projeto JVM (incluindo Java, Scala, Kotlin, etc.), verifique CrawlerDetect.
Para usar esta biblioteca em um projeto baseado no padrão .net (incluindo .net core), verifique NetCrawlerDetect.
Para usar esta biblioteca com Ruby on Rails ou qualquer aplicativo baseado em Ruby, confira crawler_detect gem.
Para usar esta biblioteca com Go, verifique o módulo crawlerdetect.
Partes desta classe são baseadas no brilhante MobileDetect