ウェブクローラーとは?

1 min read
インターネットに接続されたサーバーを管理するロボット。

ウェブクローラーは、インターネットのインフラとして重要な部分を担っています。この記事では、以下の事項を説明します。

ウェブクローラーの定義

ウェブクローラーとは、インターネットをスキャンして、見つけたデータをダウンロードするソフトウェアロボットです。大半のウェブクローラーは、Google、Bing、Baidu、DuckDuckGoなどの検索エンジンによって運用されています。検索エンジンは、収集したデータに検索アルゴリズムを適用して、検索エンジンインデックスを作成します。このインデックスにより、検索エンジンはユーザーの検索クエリに基づいて、関連するリンクを提供できます。

過去の特定の時点のウェブサイトのスナップショットを提供するWay Back Machineのように、検索エンジンとは別の目的で使用されるウェブクローラーもあります。

 

ウェブクローラーの仕組み

GoogleのGooglebotのようなウェブクローラーは、毎日、クローリングしたいウェブサイトのリストを作成して作業を開始します。これはクロールバジェットと呼ばれます。バジェットには、ページのインデックス作成に対する需要が反映されます。クロールバジェットに影響する2つの主な要因は、人気と陳腐化です。インターネット上で人気のあるURLは、インデックス内で最新の状態を保つために、より頻繁にクローリングされる傾向があります。また、ウェブクローラーはURLのインデックスが陳腐化するのを防ごうとします。

ウェブクローラーがサイトに接続すると、まずrobots.txtファイルをダウンロードして読み込みます。robots.txtファイルは、ロボットがウェブをクローリングし、コンテンツにアクセスしてインデックスを作成し、そのコンテンツをユーザーに提供する方法を規制するウェブ標準群であるロボット排除プロトコル(REP)の一部です。ウェブサイトの所有者は、サイト上でアクセスできるユーザーエージェントとアクセスできないユーザーエージェントを定義できます。また、robots.txtには、クローラーがウェブサイトに対して行うリクエストのペースを抑制するためのcrawl-delayディレクティブを定義することもできます。また、robots.txtには、サイトに関連するサイトマップも記載されているため、クローラーはすべてのページとその最終更新日時も確認できます。前回のクローラー訪問以降に変更がないページは、今回スキップされます。

ウェブクローラーは、クローリング対象のページに最終的に到達すると、そのページをブラウザーでレンダリングし、すべてのHTML、サードパーティーのコード、JavaScript、CSSを読み込みます。この情報は検索エンジンのデータベースに保存され、後でページのインデックス作成とランク付けに使用されます。また、ページ上のすべてのリンクもダウンロードします。検索エンジンのインデックスにまだ登録されていないリンクは、後でクロールするためのリストに追加されます。

robots.txtファイルに記載されているディレクティブへの準拠は任意です。ほとんどの主要な検索エンジンはrobots.txtディレクティブに従っていますが、そうでないものもあります。スパマーやボットネットなどの悪質業者は、robots.txtディレクティブを無視します。Internet Archiveのような合法的なウェブクローラーでさえ、robots.txtを無視しています。

ウェブクローラーの例

検索エンジンには複数の種類のウェブクローラーがあります。たとえば、Googleには17種類のボットがあります。

  • APIs-Google
  • AdSense
  • AdsBot Mobile Web Android
  • AdsBot Mobile Web
  • Googlebot Image
  • Googlebot News
  • Googlebot Video
  • Googlebot Desktop
  • Googlebot Smartphone
  • Mobile Apps Android
  • Mobile AdSense
  • Feedfetcher
  • Google Read Aloud
  • Duplex on the web
  • Google Favicon
  • Web Light
  • Google StoreBot

SEO対策にウェブクローラーが重要な理由

SEOの目標は、ユーザーが関連する検索語を検索したときに、自社のコンテンツが簡単に見つかるようにすることです。Googleは、コンテンツがクローリングおよびインデックス化されていない場合、コンテンツをどこにランク付けしたらよいかを知ることができません。

ウェブクローラーは、他の分野でも役立つことがあります。Eコマースサイトでは、競合他社のサイトをクローリングして、製品の品揃えや価格を分析することがよくあります。通常、この種のデータ収集は「ウェブクローリングではなくウェブスクレイピング」として知られています。ウェブスクレイピングは、特定のHTMLデータ要素に焦点を当てます。ウェブスクレイパーは非常に集中的であるのに対し、ウェブクローラーは広く網を張ってあらゆるコンテンツを収集します。ユーザーの側には、SERPデータのクローリングやスクレイピングを支援するSERP APIツールもあります。

ウェブクローラーが直面する課題

ウェブクローラーが直面する課題はいくつもあります。

課題 説明
robots.txtの制限 ウェブクローラがrobots.txtの制限に従う場合、特定のウェブページにアクセスできなかったり、任意の制限を超えるリクエストを送信できなかったりすることがあります。
IPの禁止 ウェブクローラーの中には、robots.txtの制限に従わないものもあるため、それらが他のさまざまなツールを実装してウェブクローリングを制限することがあります。ウェブサイトは、詐欺師が使用する無料データプロキシや特定のデータセンターのIPアドレスなど、悪意があることがわかっているIPアドレスを禁止することができます。
ジオロケーションの制限 一部のウェブサイトでは、ウェブサイトコンテンツにアクセスするために、特定の地域に居住していることを条件としています。たとえば、米国以外の地域からNetflix USAのコンテンツにアクセスしようとする場合です。地理的な制限の大半は、レジデンシャルプロキシネットワークを使用することで克服できます。
CAPTCHA 一部のウェブサイトでは、不審なソースからの大量のアクティビティを検出すると、リクエストの背後にいるのが本物の人間かどうかを確認するためにCAPTCHAを表示します。CAPTCHAはウェブクローラーの活動を阻害する可能性があります。多くのウェブスクレイピングソリューションは、この種のブロックを克服するためのツールや技術を備えています。これらのブロック解除ツールは、多くの場合、CAPTCHA解決ソリューションを利用します。

まとめ

ウェブクローラーは、インターネットのインフラとして重要な部分を担っています。これにより、検索エンジンは検索インデックスを作成するために必要なデータを収集し、ユーザーのクエリに対して検索結果を提供できます。多くの企業は、調査を支援する役割としてのウェブクローラーに注目しています。実際には、多くの場合、Amazon、Adidas、Airbnbのリスティングのように、1つか2つのサイトに集中しています。このようなユースケースでは、Bright DataのウェブスクレイパーIDEのようなツールが、よりニーズに適しています。