Webクローラーの使い方
Webクローラーを使用すると、WebサイトのドメインURLを使用してWebサイトから情報を自動的に収集できます。ドメイン内の検出可能なページはすべて自動的にナレッジベースに追加されます。コンテンツが頻繁に更新されるWebサイトについては、定期的なクロールをスケジュールすることで、新しく追加されたページから最新の情報とコンテンツをナレッジベースに追加できます。また、クロールパターン内の特定のキーワードやパスを指定することで、Webサイトの特定のセクションのみを抽出することもできます。
クロールパターン
パターンは、シンプルなURL文字列の一致に基づいて、クロールされるページや処理を迅速かつ簡単に制限します。例えば、http://www.example.com/sports/heres-a-sports-article.html の「sports」カテゴリ内のページのみをクロールするには、クロールパターンとして /sports/ を指定します(スラッシュを含めることで精度が向上し、URLの他の場所にある「sports」文字列との誤一致を防ぎます)。
クロールパターンを使用することで、クロールを特定のサブドメインに制限できます。例えば、特定のドメインで開始されるクロールで、クロールパターンを入力して望ましくないリンクからのクロールを防ぐことができます。 Webクロールの設定では、各行に個々のパターンを配置することで、複数の文字列に一致する複数のパターンを入力できます。
利用可能なクロールパターンは以下の通りです:
URLの先頭に一致を制限する
キャレット文字(^)を使用して、パターン一致をURLの先頭に制限します。例えば、処理パターン ^https://example.com は、URLが https://example.com で始まるページのみに処理を制限します。
ネガティブマッチパターン
感嘆符(!)を使用して「ネガティブマッチ」を行い、ページのクロールまたは処理を明示的に除外します。
正規表現クロールと処理
クロールまたは処理のURL一致を精密に制御するために、正規表現(regex)を作成して、定義した式に一致するURLのみをクロールまたは処理できます。例えば、/crawl パスの下で https://example.com/ の「regex」という用語を含むページを処理するには、次のような処理正規表現を使用できます:\\/crawl.*?regex。
Crawlbotはページの評価時に最適なパフォーマンスを実現するためにカスタム正規表現エンジンを使用しています。Crawlbotの解析で一般的に使用される文字クラス構文について、CrawlbotはすべてのASCII処理文字とほとんどのPerl/Tclショートカットをサポートしています。
HTML処理パターン
クロールでは、HTML処理パターンに基づいて処理するページを制限できます。これはクロール時にrawソースのみを検証し、JavaScript/AJAXは実行しません。ただし、このオプションの欠点はクロール速度です。 より高速なクロール速度が必要な場合は、正規表現のクロールと処理を使用すべきです。
クローラーの使用場面
クローラーは、Webから構造化された高価な情報を抽出するために設計されています。データが公開されており、定期的に更新されるシナリオで最も効果的に機能します。
最適な使用例
- ニュースとメディア – BBC Newsなどのサイトから記事を抽出
- 金融データ – NASDAQなどの株式サイトから市場インサイトを収集
- Eコマース – マーケットプレイスから製品リスト、レビュー、価格情報を収集
- ナレッジリソース – ブログ記事、フォーラムの議論、FAQコンテンツをキャプチャしてナレッジベースを充実させる
クローラーを使用すべきでない場合
エラーやコンプライアンス上の問題を防ぐために、以下の状況ではクロールを避けてください:
- 認証が必要 – ログイン認証情報が必要なWebサイト(例:LinkedIn)。
- 高度に動的なダッシュボード – リアルタイムダッシュボード(ライブ株価ティッカーなど)は完全な結果を返さない場合があります。
- 過度なサイト負荷 – 各サイトの利用ポリシーを遵守してください。クロール前に必ず
robot.txtファイルを確認してください。
新しいクローラーの作成
- EKBプロジェクトで、ナレッジベースに移動します。
- ナレッジベースで、右上の歯車アイコンをクリックします。
- クローラータブに移動します。
- + 新規作成をクリックします。
- 入力セクション:
a. クローラーの名前を入力します。
b. クロール対象のWebサイトへのリンクであるシードURLを指定します。これはクローラーがアクセスする初期リンクです。そこから、クローラーはWebサイト内のWebページとリンクを探索します。 - クローラー設定セクション:
- ルートドメインに制限 – クローラーがルートドメインのみに集中するように設定し、関連情報の抽出を効率化します。
- ファイルのダウンロード – クロール中に見つかったファイルをダウンロードして処理する場合は、このオプションを有効にします。
- クロールする最大ページ数 – リソース使用量と効率を最適化するために、クロールするページの最大数を設定します。
- 最大深度 – シードURLからのクロールの最大深度を設定します(つまり、何リンク深くまで追跡するか)。
- クロール戦略 – クローラーがどのページを最初に訪問するかの優先順位を設定します。
- ベストファースト – このオプションを選択した場合、クローラーがこれらのページを見つけるために使用するキーワードと、これらのキーワードの重みを構成する必要があります。
- ベストファースト用キーワード – このテキストボックスで構成されたキーワードを含むページが最初にクロールされます。1行に1つのキーワードを入力してください。
- キーワードの重み – キーワードマッチングのキーワード重みを構成します。値が大きいほどキーワードマッチングの優先度が高くなります。
- ブレッドストファースト – この方法は、より深く掘り下げる前に、現在のページから直接リンクされたすべてのページを先に訪問することを優先します。
- デプスファースト – この方法は、バックトラックして他のパスを探索する前に、単一のリンクパスに沿ってできるだけ深く探索することを優先します。
- ベストファースト – このオプションを選択した場合、クローラーがこれらのページを見つけるために使用するキーワードと、これらのキーワードの重みを構成する必要があります。
- ドメインに制限 – ルートドメイン内のすべてのサブドメインをクロールする代わりに、特定のドメインにクローラーを制限します。1行に1つのドメインを入力するか、空白のままにするとすべてのサブドメインがクロールされます。
- パターンに制限 – クローラーに使用させたいクロールパターンを入力します。1行に1つのクロールパターンを入力してください。警告複数のクロールパターンを使用する場合、以下の階層が適用されます:
1. 正規表現
2. ネガティブマッチ
3. その他すべてのパターン。
- スケジューリングセクションで、定期クロールの頻度と時刻を定義します:
- クロールを有効にする – このオプションを有効にしてクロールスケジュールを設定します。
- n日ごとに繰り返す – クロールを実行する日数を設定します。例:
- 毎日 =
1 - 毎週 =
7 - 隔週 =
14 - 毎月 =
30
- 毎日 =
- 次回のスケジュール – 入力した日数に応じて、次回のクロール日が表示されます。
- Webクロールの設定が完了したら、今すぐクロールをクリックして最初のクロールを開始します。以下のタブを含む新しいクローラーの設定ページにリダイレクトされます:
- 概要 – クロールリクエスト情報とステータスを確認できる場所です。
- 設定 – クローラーの設定を編集できる場所です。クロール実行後でもこれらの設定を編集できます。
- クロールレポート – このタブでは、クロール中のページのリアルタイム更新を提供します。
ベストプラクティス
1. 明確で簡潔なシードURLを使用する
抽出対象のWebサイトのセクションを直接指すURLを選択してください。
- 良い例:
https://www.example.com/news(「ニュース」セクションのみを対象) - 悪い例:
https://www.example.com?user=1234(動的パラメータの使用はエラーや冗長なクロールを引き起こす可能性があります)
常に以下を確認してください:
- URLがアクセス可能であり、抽出したいデータに関連していること。
- クロールを特定のセクションに制限したい場合は、サブページを使用すること。
2. ドメインとサブドメインを制限する
不要なまたは無関連なデータの取り込みを防ぐために、クロールを集中させましょう。
- ルートドメインに制限 –
example.comをクロールすると、そのドメインのみがキャプチャされ、外部リンク(例:otherwebsite.com)は無視されます。 - ドメインに制限 –
blog.example.comをクロールしても、shop.example.comなどの他のサブドメインは含まれません。
例
https://www.bbc.com をクロールし、ルートドメインに制限を有効にすると、サイトにリンクされている外部ニュースソースではなく、BBCのコンテンツのみが含まれることが保証されます。
3. クロールパターンと処理パターンを使用する
パターンを使用すると、クローラーが取得・処理する内容を微調整できます。
- クロールパターン – どのURLをクロールするかを定義します。
- 処理パターン – ナレッジベースに抽出するコンテンツを指定します。 両方とも簡略化された正規表現構文を使用します:
- 暗黙のワイルドカード –
productsを入力すると、「products」を含むURLが一致します。 - 否定(
!) –!productsは「products」を含まないURLが一致します。 - 先頭一致(
^) –^https://example.com/products/はそのパスで始まるURLが一致します。 - 末尾一致(
$) –products/$は「products」で終わるURLが一致します。
例
- クロールパターン –
https://example.com/products/*> すべての製品ページをクロール。 - 処理パターン –
https://example.com/products/*reviews> 製品ページからレビューのみを抽出。
4. 定期クロールを有効にする(必要な場合)
動的なWebサイトの場合、ナレッジベースを最新の状態に保つために定期クロールをスケジュールします。
例
https://www.nasdaq.com で毎日クロールを有効にして、株価を追跡します。
5. サイトマップを使用して効率化する
サイトがサイトマップ(例:https://example.com/sitemap.xml)を提供している場合は、それを活用してクローラーを導き、完全なカバレッジを確保します。
例
すべての最新記事をリストするサイトマップを持つニュースWebサイトは、記事が1つも見逃されないことが保証されます。