Crawler Detect
v1.3.0
CrawlerDetect 是一个 PHP 类,用于通过user agent
和http_from
标头检测机器人/爬虫/蜘蛛。目前能够检测 1,000 个机器人/蜘蛛/爬虫。
composer require jaybizzle/crawler-detect
use JaybizzleCrawlerDetectCrawlerDetect;$CrawlerDetect = new CrawlerDetect;// 检查当前“访问者”的用户代理 if($CrawlerDetect->isCrawler()) {// 如果检测到爬虫用户代理,则为 true}// 将用户代理作为字符串传递 if ($CrawlerDetect->isCrawler('Mozilla/5.0(兼容;Sosospider/2.0; +http://help.soso.com/webspider.htm)')) {// 如果检测到爬虫用户代理则为 true}// 输出匹配的机器人名称(如果有)echo $CrawlerDetect->getMatches() ;
如果您发现 CrawlerDetect 无法检测到 bot/spider/crawler 用户代理,请提交一个拉取请求,并将正则表达式模式添加到Fixtures/Crawlers.php
中的$data
数组中,并将失败的用户代理添加到tests/crawlers.txt
。
如果失败,只需使用您找到的用户代理创建一个问题,我们将从那里处理:)
如果您想将其与 Laravel 一起使用,请参阅 Laravel-Crawler-Detect
要将此库与 Symfony 2/3/4 一起使用,请查看 CrawlerDetectBundle。
要将此库与 YII2 框架一起使用,请查看 yii2-crawler-detect。
要将此库与 NodeJS 或任何基于 ES6 的应用程序一起使用,请查看 es6-crawler-detect。
要在 Python 项目中使用此库,请查看crawlerdetect。
要在 JVM 项目(包括 Java、Scala、Kotlin 等)中使用此库,请查看 CrawlerDetect。
要在基于 .net 标准(包括 .net core)的项目中使用此库,请查看 NetCrawlerDetect。
要将此库与 Ruby on Rails 或任何基于 Ruby 的应用程序一起使用,请查看crawler_detect gem。
要将此库与 Go 一起使用,请查看crawlerdetect模块。
该类的部分内容基于出色的 MobileDetect