CrawlerDetect 是一個 PHP 類,用於透過user agent
和http_from
標頭檢測機器人/爬蟲/蜘蛛。目前能夠偵測 1,000 個機器人/蜘蛛/爬蟲。
composer require jaybizzle/crawler-detect
use JaybizzleCrawlerDetectCrawlerDetect;$CrawlerDetect = new CrawlerDetect;// 檢查目前「訪客」的使用者代理if($CrawlerDetect->isCrawler()) {// 如果偵測到爬蟲使用者代理,則為true}// 將使用者代理為true}// 將使用者代理為true}// 將使用者代理為true}/// 將使用者代理為true}/// 將使用者代理為true}/// 將使用者代理為true}/// 將使用者代理為true}/// 將使用者代理為true}/// 將使用者代理為true}/// 將使用者代理為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