This Library is an ES6 version of the original PHP class @CrawlerDetect, it helps you detect bots/crawlers and spiders only by scanning the user-agent string or from the global request.headers
.
npm install es6-crawler-detect
'use strict';
const express = require('express')
const Crawler = require('es6-crawler-detect/src')
const app = express()
app.get('your/route', function async (request, response) {
// create a new Crawler instance
var CrawlerDetector = new Crawler(request)
// check the current visitor's useragent
if ( CrawlerDetector.isCrawler() )
{
// true if crawler user agent detected
}
// or check a user agent string
if ( CrawlerDetector.isCrawler('Mozilla/5.0 (compatible; Sosospider/2.0; +http://help.soso.com/webspider.htm)') )
{
// true if crawler user agent detected
}
// Output the name of the bot that matched (if any)
response.send(CrawlerDetector.getMatches())
})
<head>
<!-- Metas -->
<meta name="title" content="ES6-CrawlerDetect">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="keywords" content="">
<title>CrawlerDetect - the web crawler detection library</title>
<!-- Scripts -->
<script type="text/javascript" src="./your/path/to/main.prod.js"></script>
</head>
// create a new Crawler instance
var CrawlerDetector = new Crawler();
var userAgentString = navigator.userAgent;
// check the current visitor's useragent
if ( CrawlerDetector.isCrawler(userAgentString) )
{
// true if crawler user agent detected
}
// Output the name of the bot that matched (if any)
console.log(CrawlerDetector.getMatches());
If you find a bot/spider/crawler user agent that CrawlerDetect fails to detect, please submit a pull request with the regex pattern added to the data
array in ./crawler/crawlers.js
.