[Web Crawler Notes] クローラーロボットのプロトコル構文の詳細な説明

Robots プロトコルとは、Robots Exclusion Protocol と呼ばれるプロトコルを指します。このプロトコルの主な機能は、Web スパイダーやロボットなどの検索エンジン クローラーに標準のアクセス制御メカニズムを提供し、どのページがクロール可能でどのページがクロールできないかを通知することです。この記事では、クローラー ロボット プロトコルの構文を詳細に説明し、関連するコードとケースを示します。

1. ロボットプロトコルの基本構文

Robots プロトコルの基本構文は次のとおりです。

ユーザーエージェント: [ユーザーエージェント名]
Disallow: [クロールされない URL 文字列]

このうち、User-agent は検索エンジン クローラーの名前を指定するために使用され、Disallow は検索エンジン クローラーによるクロールを許可しないページ URL を指定するために使用されます。

たとえば、ロボット プロトコル ファイルの例を次に示します。

User-agent: Googlebot
Disallow: /private/
Disallow: /admin/
Disallow: /login/

上記例では、検索エンジンのGooglebot名を指定し、/private/、/admin/、/login/の3ページのクロールを禁止する設定を行っています。

2. ロボットプロトコルの共通パラメータ

ロボット プロトコルには、次のような一般的に使用されるパラメータもいくつかあります。

  • 許可: 検索エンジン クローラーがページ URL にアクセスできるようにします。
  • サイトマップ: サイト マップの URL を指定します。この URL は、検索エンジン クローラーがサイトをクロールするときに提供されるため、検索エンジンはサイト全体の構造情報を取得できます。
  • クロール遅延: 検索エンジン クローラーのクロール間隔を秒単位で指定します。

たとえば、ロボット プロトコル ファイルの例を次に示します。

User-agent: Googlebot
Disallow: /private/
Disallow: /admin/
Disallow: /login/
Allow: /public/
Sitemap: http://www.example.com/sitemap.xml
Crawl-delay: 10

上の例では、Allow パラメーターを追加して、検索エンジン クローラーが /public/ パスの下のページにアクセスできるようにしました。同時に、サイト マップの URL は http://www.example.com/sitemap.xml として指定され、検索エンジン クローラーの巡回間隔は 10 秒です。

3. ロボットプロトコルの場合

次に、実際のケースを使用して、ロボット プロトコルを使用して検索エンジン クローラーのアクセスを制限する方法を説明します。

電子商取引 Web サイトを作成したいが、検索エンジン クローラーにショッピング カート ページをクロールされたくないとします。

まず、Web サイトのルート ディレクトリに robots.txt という名前のファイルを作成し、検索エンジン クローラーにクロールさせたくないページ URL を指定する必要があります。サンプル コードは次のとおりです。

User-agent: *
Disallow: /cart/

上記のコードでは、「*」ワイルドカードを使用しています。これは、すべての検索エンジン クローラーに適用できることを意味し、/cart/ パス下のページへのアクセスが許可されないことも指定します。

このようにして、検索エンジン クローラーは、当社 Web サイトにアクセスすると、まずロボット プロトコル ファイルを読み取り、プロトコル ファイルの内容に基づいてショッピング カート ページをクロールするかどうかを決定します。

4. Python はロボット プロトコルを実装します

Python では、urllib ライブラリの robotparser モジュールを使用して、ロボット プロトコルを解析して使用できます。サンプル コードは次のとおりです。

import urllib.robotparser

rp = urllib.robotparser.RobotFileParser()
rp.set_url("http://www.example.com/robots.txt")
rp.read()

if rp.can_fetch("Googlebot", "http://www.example.com/cart/"):
    print("Googlebot is allowed to fetch the content!")
else:
    print("Googlebot is not allowed to fetch the content!")

上記のコードでは、まず RobotFileParser オブジェクトを作成し、Robots プロトコル ファイルの URL を指定して、プロトコル ファイルの内容を読み取ります。次に、can_fetch() メソッドを使用して、指定された検索エンジン クローラーが指定された URL をクロールできるかどうかを判断します。

要約する

Robots プロトコルは Web サイト管理標準であり、Web サイトのルート ディレクトリに robots.txt ファイルを作成することで、検索エンジン クローラーが Web サイトのコンテンツをクロールするためのルールを規定できます。Robots プロトコルはシンプルで分かりやすく、安定した実行効果があり、Web サイト管理者が検索エンジンの最適化を行うための重要なツールです。

おすすめ

転載: blog.csdn.net/wq10_12/article/details/132713538