JavaScriptで一般のUserとWebクローラーのどちらからのアクセスか判定する方法

JS_WebCrawler

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、JavaScriptで一般のUserとWebクローラーのどちらからのアクセスか判定する方法について解説していきます。

一般のUserとWebクローラーのどちらからのアクセスか判定する方法

JavaScriptで一般のUserとWebクローラーのどちらからのアクセスか判定するには、User Agentの情報を確認することで判定できます。

一般的なWebクローラーを対象にする場合

一般的なWebクローラーを対象にする場合のUser Agentの確認は次のとおりです。

/** User Agent 文字列 */
const userAgent = navigator.userAgent;

/** Web Crawler かどうかを識別する */ 
const isCrawler = /bot|googlebot|crawler|spider|robot|crawling/i.test(userAgent);

console.log(`Is Crawler: ${isCrawler}`);

Python系のWebスクレイピング botを対象に含める場合

また、Pythonや、Scrapy(Pythonのスクレイピングライブラリ)を対象に含める場合は、次のようになります。

/** User Agent 文字列 */
const userAgent = navigator.userAgent;

/** Web Crawler かどうかを識別する Ver. Python や Scrapy(Pythonのスクレイピングライブラリ) も含める場合 */ 
const isCrawler2 = /bot|googlebot|crawler|spider|robot|crawling|Python|Scrapy/i.test(userAgent);

console.log(`Is Crawler: ${isCrawler2}`);

ただし、Webスクレイピング botの場合は、User-Agentの情報を変えている場合もあるので、必ずしもUser Agentだけでは確実な判断ができないので、そこは要注意です。

ScrapyでのUser-Agentの変更

上記の説明にあるぐらい簡単にUser-Agentの情報を変更することができます。

JavaScript書籍 Ver. 中級-上級者向け

JavaScript書籍 Ver. 初級者向け

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

参考・引用

  1. クローラーアクセスの確認方法
  2. ScrapyでのUser-Agentの変更

最近の投稿