モジュール概要
URL を処理するための機能を提供するモジュールです。
このモジュールを使用することで、Python プログラム内で URL を操作し、ネットワークとのやり取りを効率的に行うことができます。
主な機能
- URL の解析
- URL の構築
- URL のエンコードとデコード
- URL の構成要素の操作
- URL の標準化
urllib.parseモジュールでよく使われるメソッド
urlparse()
URLをscheme, netloc, path, params, query, fragmentなどに分割します。
scheme, netloc, path, params, query, fragment
スキーム、 ネットロケーション、 パス、 パラメータ、 クエリ、 フラグメント
from urllib import parse
url = 'http://www.example.com/path?name=JohnDoe#fragment'
parsed_url = parse.urlparse(url)
print(parsed_url)
# 出力:ParseResult(scheme='http', netloc='www.example.com', path='/path', params='', query='name=JohnDoe', fragment='fragment')
paramsとqueryについて
params と query は、URL を構成する要素の一部であり、それぞれ異なる役割を持っています。以下はその違いについての説明です。
1. params (パラメータ):
- 位置: URL のパス部分に付随する形で記述されます。
- 用途: パスに関連する情報を指定するために使用されます。ウェブアプリケーションや API によっては、リソースを識別したり動作を変更するために使われる場合があります。
- 特徴: パスと密接に関連しており、一般的なクエリパラメータよりも使用頻度が低いです。
例:http://example.com/path;param1=value1;param2=value2
2. query (クエリ):
- 位置: URL の末尾に ? の後で記述されます。
- 用途: 主にクライアントからサーバーに送信される追加情報を提供するために使用されます。検索条件やフィルタリングの条件などを指定する際に利用されることが多いです。
- 特徴: 一般的にキーと値のペア (key=value) を & で区切る形式で表されます。非常に広く使用されています。
例:http://example.com/path?key1=value1&key2=value2
URL の構造における違い
例:http://example.com/path;param1=value1?key1=value1&key2=value2#fragment
- params: ;param1=value1 の部分。
- query: ?key1=value1&key2=value2 の部分。
使い分け
- params: リソースの識別やパスと直接関係する設定を行う場合に使用。
- query: クライアントがリクエスト時に指定する条件や追加情報を伝えるために使用。
通常、query の方がより一般的に利用されます。