CrawlerDetect เป็นคลาส PHP สำหรับการตรวจจับบอท/โปรแกรมรวบรวมข้อมูล/สไปเดอร์ผ่าน user agent
และ http_from
ส่วนหัว ขณะนี้สามารถตรวจจับบอท/แมงมุม/ซอฟต์แวร์รวบรวมข้อมูลได้กว่า 1,000 ตัว
composer require jaybizzle/crawler-detect
ใช้ JaybizzleCrawlerDetectCrawlerDetect;$CrawlerDetect = new CrawlerDetect;// ตรวจสอบ user agent ของ 'visitor'if($CrawlerDetect->isCrawler()) ปัจจุบัน {// true หากตรวจพบ user agent ของ crawler}// ส่ง user agent เป็น stringif ($CrawlerDetect->isCrawler('Mozilla/5.0 (เข้ากันได้; Sosospider/2.0; +http://help.soso.com/webspider.htm)')) {// จริงหากตรวจพบตัวแทนผู้ใช้ของโปรแกรมรวบรวมข้อมูล}// ส่งออกชื่อของบอทที่ตรงกัน (ถ้ามี) echo $CrawlerDetect- >getMatches();
หากคุณพบ User Agent ของบอท/สไปเดอร์/ครอว์เลอร์ที่ CrawlerDetect ตรวจไม่พบ โปรดส่งคำขอดึงข้อมูลที่มีรูปแบบ regex ที่เพิ่มลงในอาร์เรย์ $data
ใน Fixtures/Crawlers.php
และเพิ่มตัวแทนผู้ใช้ที่ล้มเหลวใน 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 อันยอดเยี่ยม