Python
 Computer >> コンピューター >  >> プログラミング >> Python

urllib.robotparser-Pythonのrobots.txtのパーサー


Webサイトの所有者は、/ robots.txtファイルを使用して、自分のサイトに関する指示をWebロボットに提供します。これは、ロボット排除プロトコルと呼ばれます。このファイルは、Webリソースに自動的にアクセスするコンピュータプログラム用のシンプルなテキストベースのアクセス制御システムです。このようなプログラムは、スパイダー、クローラーなどと呼ばれます。このファイルは、ユーザーエージェント識別子と、それに続くエージェントがアクセスできないURLのリストを指定します。

#robots.txt
Sitemap: https://example.com/sitemap.xml
User-agent: *
Disallow: /admin/
Disallow: /downloads/
Disallow: /media/
Disallow: /static/

このファイルは通常、Webサーバーの最上位ディレクトリに配置されます。

Pythonのurllib.robotparserモジュールは、RobotFileParserクラスを提供します。特定のユーザーエージェントがrobots.txtファイルを公開したWebサイトのURLを取得できるかどうかに関する質問に答えます。

次のメソッドはRobotFileParserクラスで定義されています

set_url(url)

このメソッドは、robots.txtファイルを参照するURLを設定します。

read()

このメソッドはrobots.txtURLを読み取り、それをパーサーにフィードします。

parse()

このメソッドはlines引数を解析します。

can_fetch()

このメソッドは、useragentがrobots.txtに含まれているルールに従ってURLをフェッチできる場合、Trueを返します。

mtime()

このメソッドは、robots.txtファイルが最後にフェッチされた時刻を返します。

Modified()

このメソッドは、robots.txtが最後にフェッチされた時刻を設定します。

crawl_delay()

このメソッドは、問題のユーザーエージェントのCrawl-delayパラメータrobots.txtの値を返します。

request_rate()

このメソッドは、Request-rateパラメーターの内容を名前付きタプルRequestRate(requests、seconds)として返します。

from urllib import parse
from urllib import robotparser
AGENT_NAME = 'PyMOTW'
URL_BASE = 'https://example.com/'
parser = robotparser.RobotFileParser()
parser.set_url(parse.urljoin(URL_BASE, 'robots.txt'))
parser.read()

  1. WindowsでのPythonプログラミング用のIDE

    この記事では、PythonforWindowsで利用できるさまざまなIDEについて学習します。 Pycharm インタラクティブなPythonコンソール Webフレームワークのサポート より速い屈折時間 開発が少ない Jupyterノートブック ほぼすべてのPythonモジュールとの互換性 スペースとハードウェアの要件が少ない 組み込みのターミナルおよびカーネル機能 さまざまなウィジェットを適用できます ウィングイデ 組み込みのデバッグツール 単体テストのサポート 簡単なコードナビゲーション機能。 コモドイデ サードパーティライブラリのサポート XMLオートコンプ

  2. Pythonコードの最適化のヒント?

    Pythonは他の準拠言語ほど高速でも効率的でもないことは誰もが知っていますが、ただし、Pythonコードがはるかに大きなワークロードを処理できることを示している大企業はたくさんあり、それほど遅くはないことを示しています。このセクションでは、正しいPythonプログラムをさらに高速かつ効率的に実行するために、覚えておくべきヒントをいくつか紹介します。 ヒント1:組み込み関数を使用する Pythonで効率的なコードを書くことはできますが、組み込み関数(Cで書かれている)に勝るものはありません。下の画像は、Python組み込み関数のリストを示しています ヒント2:Pythonの複数の代入を