ずばり・・・
世の中に沢山存在する無数のwebサイトを自動的に巡回して情報を集めるプログラムのこと。
検索エンジンやデータ収集ツールで使用される。また、webサイトのコンテンツを解析しデータベースに保存することもできる。
クローラーの基本的な構造
1.URLフロンティア(URL Frontier)
ざっくり解説:クロールするURLのリストを管理する部分
2.HTTPクライアント(Fetcher)
ざっくり解説:指定されたURLからWebページを取得する部分。
3.HTMLパーサー(Parser)
ざっくり解説:取得したWebページのHTMLを解析する部分。
4.データストレージ(Storage)
ざっくり解説:取得するデータを保存する部分。
クローリングの流れ
1.URLの収集
・最初に種URLを用意。
2.HTTPリクエストの送信
・Webサーバーへリクエストを送る。
・robots.txtを確認し、禁止されている場合はスキップする。
3.HTMLの解析
・取得したHTMLを解析、新しいリンクをまたここで抽出する。
・テキストの他にも画像、メタデータなどの情報を保存。
4.データの保存
・検索エンジンの場合、解析したデータをインデックス化。(逆引きインデックス→つまり、知りたいことから探すことのできるデータ構造にする。)
5.次のURLに進む。
・URLフロンティアのリストから新しいURLを選択肢、2番へ戻る。
クローラーの種類
汎用クローラー(検索エンジン系)
・皆大好きGoogleBot(GoogleChrome)、BingBot(Bing)
・世界中のwebページを巡回する、検索アルゴリズムを基にランクを付ける。
特化型クローラー(用途別)
・Amazonの価格監視クローラーとかがそうらしい。
・マーケット・リサーチや競合分析、マーケティングに活用できる。
自律型クローラー(学習型)
・AIベースのデータ収集クローター(今どきのやつ、GPT Crawlerとかがそう。)
・データを自動学習し、効率的に情報収集
・ユーザーの検索履歴や行動を学習したり、クロール範囲を最適化できる。
このサイト個人的にめっちゃ面白かった
【GPT Crawler】URLを入れるだけでどんなサイトもGPTsにできる神AIを使ってみた | WEEL
https://weel.co.jp/media/tech/gpt-crawler/
もしクローラーを制御したいという場合
robots.txtの指定
・Webサイトのルートにある設定ファイルと同じ階層に設置する。
・クローラーがアクセスできる範囲を指定。
User-agent: *
Disallow: /private/
→全てのクローラーは「/private/」ディレクトリ見ないで!という意味。
meta robotsタグ
・HTMLの<head>
内に記述
<meta name="robots" content="noindex, nofollow">
→ページのインデックス登録とリンクの追跡を禁止,
noindex,nofollow
ってなんか標語みたいw
クローラートラフィック制限
・ログイン認証などを設ければそもそも来れない。
・IPアドレスで特定のクローラーをブロックすることもできるそうな...(?)
クローラーの利点とこれから課題
メリット
利点
・検索エンジンのインデックスの生成:(この場合のインデックスはデータベースでも出てくる文脈と同じ(?))を付けることでユーザーが情報を素早く見つけられる。
・データ収集の自動化:価格比較、ニュース収集などに利用可能。
・Webサイトの監視・解析:SEO対策、サイトのパフォーマンスの測定にも使える。
これからの課題
・サーバー負荷:大量のリクエストがサーバーに負荷をかける。(前に、POSTでやるべき処理をGETでやってしまい、クローラーがSQLにクエリを送りすぎて大変なことになったのをどこかの勉強会で聞いたことがある。)
・プライバシー・著作権問題:データ取得が違法になる場合もある。(これはかなりナイーブな希ガス)
・スパムボットの悪用:悪意のあるクローラーがコンテンツを盗用すること。
参考文献(参照日2025年3月1日)