0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

python 組み込みモジュール④ urllib.parse

Posted at

モジュール概要

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 の方がより一般的に利用されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?